var QUESTION_ID=13152,OVERRIDE_USER=8611;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr></thead> <tbody id="answers"> </tbody> </table> </div><div id="language-list"> <h2>Winners by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>
Jawaban:
Befunge (1)
Output
0
selamanya. Ini bekerja karena di garis Befunge membungkus, dan Anda dapatkan0
jika Anda pop dari tumpukan kosong.sumber
x86 .COM Dapat Dieksekusi, 7
dalam hex:
Yang lain membutuhkan kilobyte atau lebih dari pustaka dan runtime sistem. Kembali ke dasar:
Anda dapat mengubah byte 2 (
0x21
, atau!
) untuk mengubah output.Menggunakan interupsi BIOS untuk output; tidak perlu DOS, tapi saya belum mengatur QEMU.
Penjelasan
Kode mesin sesuai dengan rakitan berikut:
Output semua dalam
int
panggilan - per referensi ini , int 0x10 dengan 0x0e di AH akan mencetak byte dalam AL ke layar.Mengetahui bahwa register AX adalah kata 16-bit yang terdiri dari AH pada byte tinggi dan AL pada byte rendah, kita dapat menghemat beban tambahan (dan dengan demikian byte dalam kode mesin) dengan memuatnya bersama.
sumber
File Batch Windows, 2 karakter
Panggilan itu sendiri tanpa batas.
sumber
%0
tidak memiliki@
, jadi itu akan terus-menerus menghasilkan sesuatu seperti...> %0
. Ini mungkin memakan seluruh RAM kadang-kadang, karena ini bersifat rekursif.Befunge 98 - 2
Keluaran ",,,,,,,,,," untuk selamanya.
sumber
sh, 3 byte
output
y
terus menerussumber
yes
adalah biner eksternal, dan bukan bagian dari bash (secara tegas).y=yes
dan jika sistem Anda tidak esoteris, Anda dapat menganggap ituyes
ada di Anda$PATH
(lihat GNU Core Utilities ). Dengan logika Anda adalah mungkin untuk menganggap rasi bintang aneh untuk setiap solusi.bash
kemampuan: I'ts shell POSIX bagian dasar dari util inti . (Yaitu: silakan ubah judul untuk sh: 3 karakter ;-)Haskell: 8 Karakter
Utas lama, tapi yang asyik adalah
di Haskell, ia mencetak
selamanya karena itu pada dasarnya berjalan
Ia tahu bahwa itu
x
adalah sebuah string, jadi karakter pertama adalah"
, jadi ini perlu diloloskan\"
, tetapi tahu bahwa itu\
perlu diloloskan begitu\\\x
, dan seterusnya dan seterusnya.sumber
fix$show
akan lebih estetis :-)import Data.Function
, dan karena mengembalikan string daripada mencetaknya, saya mempertanyakan keadilan jumlah karakter. Juga, string sebenarnya adalah "\" \ "\" \ "\ \" \ "\" \ " ""File Batch Windows, 8 karakter
sumber
:a\r\ngoto a
karena Windows menggunakan CRLF3a 61 0a 67 6f 74 6f 20
berfungsi di windows 8 saya ...: PBrainfuck, 4
Kalau tidak,
sumber
\x01
atau\xFF
karakter dicetak. Saya kira itu bukan keharusan, meskipun: - /Java, 54 karakter
Upaya terbaik di Jawa:
sumber
for(;;)
pola klasik ? Bagaimana denganwhile(true)
?static
blokir.Bash, 4 byte
Output
./forever2.sh: line 1: $: command not found
terus menerus.Karena
$0
dilatar belakangi, setiap orang tua mati setelah perintah yang tidak valid$
, sehingga tumpukan / memori tidak habis, dan ini harus dilanjutkan tanpa batas waktu.Anehnya, output semakin lama semakin lambat.
top
melaporkan bahwa penggunaan CPU sistem mendekati 100%, tetapi ada proses memori atau CPU-babi. Agaknya beberapa alokasi sumber daya dalam kernel menjadi kurang dan kurang efisien.sumber
$0
gagal.LOLCODE (36)
Pikir saya akan mencoba LOLCODE, memiliki sejumlah besar fungsi.
sumber
HAI
danKTHXBYE
JavaScript: 14
sumber
alert()
memberi saya kesalahan iniError: Not enough arguments [nsIDOMWindow.alert]
Mesin Turing - 6 Karakter:
di mana
#
simbol kosong (pada kaset secara default),s
menjelaskan satu-satunya keadaan (awal) yang ada,1
adalah mencetak angka,R
berarti bergeser ke kanan,s
pada akhirnya tetap dalam keadaan yang sama.sumber
s#1Rs
(kondisi saat ini, simbol saat ini, simbol-untuk-menulis, arah-ke-shift, kondisi-berikutnya).Haskell, 10
Saya pikir ini adalah kode terpendek untuk
Show
infastruktur tak terbatas : mampu.Bagi yang berminat, ini mencetak:
sumber
Marbelous 4
Marbelous sangat mengejutkan di sini. Ini akan memposting jumlah tanda dolar yang tak terbatas
$
, meskipun akan mencapai batas tumpukan lebih cepat.Bagaimana itu bekerja.
24 adalah literal bahasa, yang akan jatuh dari papan dan dicetak ke STDOUT sebagai karakter ascii yang sesuai. MB adalah nama yang diberikan secara implisit kepada papan utama, karena papan utama tidak memiliki input, ia akan memunculkan setiap centang. Dan karena sel dievaluasi dari kiri ke kanan, literal akan selalu dicetak sebelum panggilan rekursif berikutnya.
Jadi ini sangat mirip dengan pseudocode ini:
Suatu solusi tanpa rekursi tak terbatas 11
Yang satu ini bekerja dengan melingkarkan literal antara dua portal
@0
, setiap kali 24 hits yang lebih rendah@0
itu diangkut ke sel di bawah bagian atas@0
. Itu tanah di/\
, yang merupakan operator klon, itu menempatkan satu salinan marmer (literal) di sebelah kiri (kembali di portal) dan satu lagi di sebelah kanan. Coopy ini kemudian jatuh dari papan (karena..
merupakan sel kosong) dan dicetak ke STDOUT. Dalam pseudocode, ini akan diterjemahkan ke:Solusi yang lebih pendek tanpa rekursi tak terbatas 9
Yang ini terus-menerus melempar marmer di antara cloner dan deflector, meletakkan satu salinan di sel paling kanan, untuk dijatuhkan dari papan. Dalam pseudocode akan terlihat seperti:
catatan
The
..
sel yang diperlukan pada dua papan terakhir sejak kelereng akan mendarat dari papan (dan dibuang) sebaliknya. Untuk bersenang-senang ekstra, Anda mengganti24
marmer denganFF
dan..
sel kosong dengan??
, yang mengubah marmer menjadi marmer antara 0 dan itu nilai saat ini sebelum menjatuhkannya. Coba tebak apa yang akan terlihat seperti pada STDOUT.sumber
C, 23 karakter
Sejauh ini sedikit lebih pendek daripada jawaban C / C ++ terbaik. Mencetak garis kosong tanpa batas (tetapi jika dikompilasi tanpa optimasi, meluap tumpukan).
sumber
putc(0)
(atau 1, atau 2, ..., atau 9). Apakah itu akan berhasil?putc
membutuhkan 2 parameter.Python 3: 15, 17, atau 18 karakter
Jawaban mdeitrick lebih panjang dalam Python 3, yang menggantikan
print
pernyataan dengan pemanggilan fungsi (15 karakter):Ini tetap yang terpendek yang saya temukan di Python 3. Namun, ada beberapa cara yang lebih menarik untuk mencetak dalam loop tak terbatas yang hanya beberapa karakter lagi.
print()
mengembalikanNone
, yang! = 9, menjadikannya loop tak terbatas; yang8
adalah no-op yang pengganti untukpass
(18 chars):iter(print, 9)
mendefinisikan iterable yang mengembalikan outputprint()
sampai sama9
(yang tidak pernah terjadi).any
mengkonsumsi input iterable mencari nilai sebenarnya, yang tidak pernah tiba karenaprint()
selalu kembaliNone
. (Anda juga bisa menggunakanset
efek yang sama.)Atau, kita dapat konsumen iterable dengan menguji apakah mengandung
8
(17 karakter):Atau, buka kemasannya menggunakan operator percikan :
Cara paling aneh yang saya pikirkan adalah menggunakan penghancuran percikan di dalam pemanggilan fungsi
function(*iterable)
,. Tampaknya Python mencoba untuk mengkonsumsi seluruh iterable sebelum bahkan mencoba pemanggilan fungsi — bahkan jika pemanggilan fungsi itu palsu. Ini berarti bahwa kita bahkan tidak memerlukan fungsi nyata, karena kesalahan jenis hanya akan dibuang setelah iterable habis (yaitu tidak pernah):sumber
*iter(print,1),
berfungsi dan hanya memiliki 15 karakter, tetapi tidak memakan banyak memori.piet - 3 kode
Menghasilkan angka 1 yang tak terbatas
sumber
x86 .COM Dapat Dieksekusi, 5 byte
dalam hex:
dalam asm:
Penjelasan:
inc ax
menambah register AX satu per satu.int 0x29
adalah rutin "fast put char" dari MSDOS, yang hanya menampilkan nilai dalam AL (bagian rendah dari AX) dan memajukan kursor dengan satu.jmp si
adalah cara yang aneh untuk melompat kembali ke atas, karena register SI adalah 0x100 pada hampir setiap sistem operasi mirip DOS, yang juga merupakan awal dari program .com;) Juga dimungkinkan untuk melakukan lompatan singkat, yang juga menggunakan 2 byte.Sumber:
Nilai Mulai MSDOS
Sizecoding WIKI
sumber
Bitxtreme , 0,25 byte
Representasi biner:
Dari dokumentasi:
Penghitung program dan akumulator diinisialisasi ke nol; kemudian, isi lokasi memori 0 dikurangi dari akumulator. Ini kebetulan 0, meninggalkan akumulator di nol. Karena tidak ada carry, bit kedua tidak ditambahkan ke penghitung program.
Penghitung program kemudian ditambahkan oleh 2 modulo 2, mengirimkannya kembali ke awal, dan menyebabkan loop tak terbatas. Pada setiap langkah, lokasi memori khusus 0 dimodifikasi, menyebabkan kontennya (a
0
) ditulis ke output.Dapat dikatakan bahwa program ini harus dinilai sebagai 1 byte, karena juru bahasa resmi di Python membutuhkan zero-padding. Namun, saya tidak berpikir zero-padding benar-benar kode .
sumber
Ringkasan: Ruby - 9, Golfscript - 6,> <> - 2, Whitespace - 19,
Perl - 2Satu bahasa yang saya tahu, dan dua saya tidak pernah, pernah digunakan sebelumnya: D
EDIT: Perl satu tidak bekerja ketika saya menginstal Perl untuk mencobanya :(
Ruby, 9
Cukup cetak 1 pada garis yang terpisah secara terus menerus.
Juga, banyak alternatif:
Solusi 10-char:
Saya benar-benar terkejut bahwa saya bisa menghilangkan ruang antara yang pertama
1
dan yangwhile
, tetapi ternyata berhasilNaskah Golf, 6
Program Golfscript pertama saya! : P
> <> ( Ikan ), 2
Spasi , 19
Di mana
s
mewakili spasi,t
mewakili tab, danl
linefeed.sumber
{1p}do
hanya mencetak1
dan berhenti, karena do adalah urutan uji-pop yang berlanjut hanya jika benar. (Karena tidak ada input, stack pada awalnya""
, yang, setelah exec1p
, muncul dan menguji false.) Hanya menambahkan dup akan bekerja, yaitu{1.p}do
(pada 7 byte).C,
2524sumber
s/while/main/
return main(puts("1"))
maka itu akan menjadi panggilan ekor.methodName(void)
menerima parameter nol persis.> <> (Ikan) , 2
Cara kreatif untuk menggunakan kotak kode ikan yang tak terbatas:
Karena pointer instruksi kembali ke awal baris setelah mencapai akhir, kode ini pada dasarnya dapat dibaca sebagai
yang berarti 'membaca string "o" dan kemudian menampilkannya'.
Anda dapat menguji kodenya di sini
sumber
perl, 10 karakter
Inilah 10 solusi perl perl lainnya dengan beberapa pengorbanan yang berbeda. Secara khusus, itu tidak memerlukan flag -n atau input pengguna untuk memulai. Namun, itu tetap memakan memori ad infinitum.
simpan ke file, jalankan file itu dan Anda mendapatkan mis:
sumber
say
(yang selalu mencetak baris baru meskipun tidak dapat menemukan argumen dari mana pun)warn
? (Ini membutuhkan pemilihan varian Perl modern menggunakan-M5.010
, tetapi itu tidak dihitung terhadap jumlah karakter Anda.)dc , 7
mencetak 'pdx \ n' berkali-kali.
sumber
VBA: 12
Audio adalah output, bukan?
Masukkan itu ke dalam file MS Office favorit rekan kerja 'favorit' yang didukung makro untuk 'kesenangan'!
Poin bonus jika mereka menggunakan headphone.
sumber
Seed , 4 byte
Cobalah online! Keluaran
11
tanpa batasHasilkan Program Befunge-98 berikut:
Cobalah online!
Bagian yang relevan hanya ini:
b
mendorong11
ke tumpukan dan.
mencetaknya.1
dan49
juga didorong ke tumpukan, tetapi tidak pernah dicetak.Animasi menjalankan kode:
sumber
C,
262524 (tanpa rekursi)Mencetak
'\n'
karakter tanpa akhir . Ini adalah byte yang lebih panjang dari jawaban C terpendek, tetapi tidak bergantung pada pengoptimalan panggilan ekor untuk menghindari tumpahnya tumpukan.sumber
for(;;)
di tempatwhile(!
!
seperti itu terus keluaran\n
R, 13 karakter
sumber
repeat cat(1)
harus bekerjaPowerShell 2.0:
17118Solusi awal saya:
Terima kasih kepada res:
Saya pikir Danko Durbić memiliki pemenang, di sini. Saya bahkan tidak yakin mengapa ini harus berhasil, tetapi itu berhasil dan saya tidak bisa memikirkan hal yang lebih pendek sejauh ini.
sumber
while(1){1}
.while($true){1}
tetapi solusi Anda pasti menang - saya lupa bahwa di PowerShell$true -eq 1
. Posting itu sebagai jawaban, dan saya akan memberikan Anda suara.for(){1}
.