Bukan tipuan untuk ini . Pertanyaan itu meminta penghitungan khusus untuk selamanya, sementara pertanyaan ini memungkinkan banyak pendekatan lain.
Tulis program atau fungsi yang, mengingat waktu dan memori yang tak terbatas, akan mencetak keluaran non-periodik yang tak terbatas.
Klarifikasi
- 'Infinite' berarti solusi terus mengeluarkan sesuatu tanpa input atau operasi lebih lanjut setelah berhasil memulai program atau fungsi.
- 'Non-periodik' berarti output tidak memiliki kemungkinan akhirnya mengulangi bagian yang sama selamanya (terlepas dari berapa lama periode itu). Contoh dari solusi yang valid akan mencetak angka-angka dari nomor irasional.
- Solusi acak tidak akan dihitung kecuali Anda dapat membuktikan bahwa itu sesuai dengan persyaratan. Solusi berbasis tanggal / waktu juga mungkin tidak valid jika tidak disimpan dengan presisi sewenang-wenang.
Pemenang
Kode terpendek (dalam byte) menang.
1\n12\n123
tidak valid?Jawaban:
Hexagony , 2 byte
Cobalah online!
Kode sumber yang tidak dilipat terlihat seperti:
Ini hanya menjalankan dua perintah ini dalam satu lingkaran, yaitu decrement (
(
) dan print (!
). Oleh karena itu, outputnya adalah:Kita perlu menggunakan decrement daripada increment untuk memastikan bahwa program kembali ke baris pertama (jika nilai memori positif, Hexagony akan berputar antara baris kedua dan ketiga, dan berakhir dalam loop tanpa batas tanpa melakukan apa-apa).
sumber
Python 2 , 23 byte
Cobalah online!
Cetakan
dan seterusnya. Mulai dengan fungsi
id
bawaan, nama variabel pra-inisialisasi terpendek, dan berulang kali mengubahnya menjadi tuple sendiri.Dalam Python 3, solusi ini satu byte lebih lama karena
print()
, tetapi byte dapat dipulihkan dariprint
keluaranNone
:atau
sumber
Labirin , 3 byte
Cobalah online!
Mencetak semua bilangan bulat non-negatif tanpa pemisah:
IP terpental bolak-balik pada kode, jadi ini benar-benar
#:!:
dalam satu lingkaran:Banyak alternatif:
sumber
Brachylog , 2 byte
Cobalah online!
Ini mencetak semua bilangan bulat yang dipesan oleh besarnya. Ini tidak akan pernah meluap dan mencetak bilangan bulat yang terlihat karena Brachylog menggunakan bilangan bulat tak terikat secara default.
Penjelasan
sumber
> <>, 3 byte
l:n
Menghasilkan aliran angka, dihitung dari 0.
Saya percaya angka yang bertambah tidak berputar ...
Penjelasan:
l
mendorong panjang tumpukan ke tumpukan:
duplikat nilai tumpukan teratas di atas tumpukann
nilai output sebagai angkaKetika garis selesai, ia kembali ke awal, jadi ia melakukannya lagi, tapi sekarang tumpukan lebih panjang ...
on line
sumber
PHP, 20 byte
Output ini:
Jika argumen baris perintah disediakan, output akan berbeda, tetapi masih non-periodik.
Sejauh yang saya mengerti dokumentasi, bahasa itu sendiri tidak membatasi panjang string.
sumber
JavaScript,
262220 byte(Peringatan: itu jahat)
sumber
for(n=0;;)alert(n++)
for(;;)alert(Date())
selama 20 byte.Haskell - 10 byte
Meskipun dalam ghci Anda cukup mengetik [1 ..] dan itu akan secara otomatis mulai dicetak.
sumber
Brainfuck, 13 Bytes, dengan asumsi tidak ada upperbound tetapi output mod 256
output kode char 2 2 4 6 2 4 6 8 10 12 14 16 18 ...
maafkan kode lama cetak loop 0 2 4 6 ... 254,
Brainfuck,
1312 Bytes (-1 dari Jo King)output kode char 0 1 0 1 1 0 1 1 1 0 ...
sumber
[.>].
dalam[>.]
?+[[>.]<[<]+]
cetakan 010110111011110 ...Thanks
+[[>.]<[<],]
dan isi bilah masukan dengan'\1'
Jelly , 3 byte
Cobalah online! - memotong output dan memunculkan kesalahan, tetapi akan jauh lebih lama secara lokal (sampai memori habis).
Dengan input nol implisit, program ini terdiri dari satu tautan yang menambah
‘
,, mencetakȮ
, dan kemudian memanggil dirinya sendiri dengan nilai baruß
,.sumber
MATL, 4 byte
Solusi ini menciptakan
while
loop yang mendorong indeks loop ke stack, menduplikatnya, mencetak nilai dan kemudian memeriksa bahwa indeks loop tidak nol untuk mengulangi lagi.Cobalah secara Online!
sumber
RProgN 2 , 13 byte
Ada banyak pasangan dalam output, dipisahkan oleh baris baru yang semakin sparce.
Yang mencetak 2 ^ n 2d diikuti oleh baris baru untuk setiap iterasi.
Cobalah online!
sumber
Befunge , 4 byte
Cobalah online!
Di Befunge, tumpukan tidak memiliki dasar dan memiliki nol tanpa batas. Yang mengatakan:
1+
menambahkan satu ke atas tumpukan:
menggandakan bagian atas tumpukan.
mencetak nilai ascii dari bagian atas tumpukan sebagai angkaDan itu berlanjut tanpa batas, karena tidak ada yang
@
menghentikan eksekusi. Ini sebenarnya salah satu masalah yang dibuat lebih mudah untuk diselesaikan dengan cara befunge bekerja ... aneh.sumber
APL (Dyalog APL) , 8 byte
{
emsp; fungsi anonim ...∇
berulang lagi⎕ ←
output ke STDOUT0 ⍵
daftar dua elemen yang terdiri dari nol dan argumen}
diterapkan pada nomor satuIni output (pada baris yang berbeda)
[0,1]
,[0,[0,1]]
,[0,[0,[0,1]]]
, dllsumber
Memproses,
3029 byte1 byte disimpan berkat QwerpDerp untuk menggunakan
millis()
alih-alihframeRate
Terus mencetak jumlah milidetik sejak awal program.
Output sampel:
sumber
C (gcc) ,
8381 bytePertama mengalokasikan pointer pada heap, fungsi kemudian dihitung ke alamat memori di depan sampai segfault dari
*p++
, oleh karena itu dibatasi oleh jumlah memori dalam sistem daripada tipe data yang digunakan yang pada akhirnya akan meluap dan mengulangi seri. Mengingat memori tak terbatas dengan kemampuan pengalamatan tak terbatas itu akan berlangsung selamanya.Cobalah online!
sumber
p++
untuk membuat klaim.7 , 2 byte
Karakter yang membentuk program ini adalah:
Saat melihat file dalam editor, kemungkinan akan mencoba menafsirkannya sebagai ASCII, dalam hal ini terlihat seperti ini:
Cobalah online!
Program mengambil input. Saya berasumsi di sini bahwa inputnya ada pada EOF; jika Anda memberikan input, kemungkinan itu akan macet.
Penjelasan
Iterasi nol
Seluruh program di sini pasif, sehingga akan menambahkan versi aktifnya sendiri ke elemen tumpukan teratas (yang awalnya kosong). Program ini dalam loop implisit, yang mengevaluasi elemen tumpukan atas (sambil meninggalkannya di tumpukan) setiap iterasi. Jadi versi aktif akan berjalan. (Hampir semua 7 program mulai seperti ini.)
Iterasi pertama
Sebelum perintah output, tumpukan berisi dua salinan
240223
(yaitu pasif). Yang teratas mendapat output (tanpa efek yang bisa diamati selain memilih format output 2, "angka"), yang di bawah tetap dan menjadi program untuk iterasi berikutnya.Iterasi kedua
Sama dengan iterasi nol, kan? Tidak terlalu; stack memiliki konten berbeda. Tumpukan sekarang di
240223
bawah .240223240223
Iterasi ketiga
Ini menghasilkan elemen tumpukan yang memiliki tiga 6s-dan-0s lebih banyak daripada 7s-and-1s. Output format 2 mengartikan ini sebagai permintaan untuk memasukkan nomor. Kita membaca EOF, dengan konsekuensi bahwa elemen berikutnya pada stack dikurangi menjadi string yang panjangnya nol. Namun, karena bug (yang tampaknya agak bermanfaat dan dapat dipromosikan ke fitur?), Ini hanya terjadi setelah mulai dijalankan. Tumpukan sekali lagi memiliki dua elemen, di
240223
bawah , tetapi versi yang lolos dari elemen teratas ini , sekarang sedang dijalankan.240223240223240223
72402236240223240223
Iterasi keempat
Bagian atas tumpukan adalah string nol panjang, jadi kami pada dasarnya hanya menghapus program yang berakhir di sana.
Iterasi kelima
Ini sangat mirip dengan iterasi ketiga. Namun ada dua perubahan. Pertama, sekarang ada 4 lebih banyak 0s-dan-6s daripada ada 1s-dan-7s, jadi kami akan mencoba untuk memasukkan karakter dari input standar daripada angka. Kami masih mendapatkan EOF, dan akhirnya mengurangi bagian atas tumpukan menjadi string yang panjangnya nol. Selanjutnya, ada kode yang berjalan setelah reduksi, sehingga iterasi berikutnya tidak segera dimulai. Sebaliknya, kami melakukan banyak operasi pada elemen panjang nol itu, berakhir dengan tiga elemen panjang nol. Kami mengeluarkan satu, dua lainnya menghilang (karena ini adalah akhir dari iterasi), dan kami pada dasarnya di mana kami berada di akhir iterasi ketiga.
Iterasi keenam
Program yang kami salin dari atas tumpukan sekarang . Semuanya berfungsi seperti pada iterasi sebelumnya sampai kita mencapai instruksi output pertama (yang pertama ). Ini sekarang memiliki lima 0s-dan-6s lebih banyak daripada 1s-dan-7s, sehingga menetapkan mode di mana instruksi output berikutnya akan diinterpretasikan sebagai permintaan untuk mengubah format output. Ini juga mengarah pada perubahan perilaku yang mencolok; karena tidak ada permintaan input, kami tidak membaca EOF, dan karenanya tidak memicu konsekuensi dari membaca EOF (elemen tumpukan atas yang baru dikosongkan), dan dengan demikian versi yang lolos dari elemen tumpukan asli tetap daripada menjadi dihapus. Ini artinya selanjutnya
240223240223240223240223
23
2402
tidak lagi menjadi no-op, membuat dua salinan dari elemen stack yang di-escape (yaitu mereka sekarang di-escape-ganda). Kami output satu, mengatur format output ke 7 ("sama dengan input"); format output ini tidak memiliki perintah I / O, dan tidak ada perintah untuk mengubah format, jadi kami akan tetap di dalamnya selama sisa program. Kami juga menampilkan724022362402232402232402232402236
(dalam penyandian yang sama dengan input) ke keluaran standar.Bagaimanapun, cukup jelas apa yang akan dilakukan program dari titik ini dan seterusnya: ini adalah kombinasi menambahkan berbagai jumlah salinan yang berbeda-beda lolos
240223
ke bagian atas tumpukan, keluar dari bagian atas tumpukan, dan mengeluarkan salinan dari bagian atas tumpukan. Dari titik ini dan seterusnya, elemen tumpukan atas tidak pernah dihapus (karena kita tidak pernah membaca EOF), sehingga hanya tumbuh dan tumbuh dan tumbuh. Pelarian berkala memastikan bahwa output tidak pernah berulang (karena itu berarti bahwa setiap iterasi, output pertama dimulai dengan setidaknya satu lebih7
dari itu pada iterasi sebelumnya).sumber
Ohm , 4 byte (CP437)
Mencetak variabel penghitung, menambahkannya, dan masuk ke loop tak terbatas! Cukup sederhana.
EDIT (1 Maret '17): Ketika saya sedang dalam proses melakukan beberapa pembaruan lainnya (setelah saya memposting jawaban ini), saya mengubah perilaku
∞
. Jawaban yang diperbarui adalah∞^,
.sumber
DC "modern" , 9 byte
Memori tak terbatas?
Kemudian tumpukan yang terus tumbuh ok?
] :-)
Berkomentar:
Karena menggunakan
r
perintah, ini tidak akan berjalan pada beberapa DC yang ada.sumber
Ruby,
2112 byteCetak semua bilangan asli. Sejauh yang saya mengerti deskripsi masalah, ini harus ok.
sumber
PHP, 21 byte
Pemakaian:
php -r "for(;;)echo uniqid();"
Keluarkan ID unik berdasarkan waktu saat ini dalam mikrodetik:
58b3e065e4b4c58b3e065e4b6358b3e065e4b7b58b3e065e4b9458b3e065e4bac58b3e065e4bc458b3e065e4bdc58b3e065e4bf558b3e065e4c0e58b3e065e4c2658b3e065e4c3e58b3e065e4c5658b3e065e4c6f58b3e065e4c8758b3e065e4c9f...
sebagai urutan berkelanjutan dari:
58b3e09390617
58b3e09390651
58b3e0939068a
58b3e093906c3
58b3e093906fc
...
sumber
uniqid
memiliki panjang yang tetap. Jadi, jika Anda membiarkan program berjalan cukup lama, string tersebut akan meluap dan mulai dari awal. Kemudian pada beberapa titik akan mencapai waktu awal dan kepala sekolah dapat menampilkan urutan ID yang sama lagi. Yang mengatakan, jika Anda dapat menunjukkan bahwa panjangnya tidak tetap, ini akan baik-baik saja.Perl 6 , 11 byte
Mencetak bilangan asli.
Cobalah online!
sumber
Python 2, 24 byte
Mencetak 9 kali setiap kekuatan 2.
Cobalah online
sumber
while n:
.Batch, 7 byte
Atau:
sumber
Powershell, 19 Bytes
Membosankan menghitung jawaban.
Versi jawaban yang ditingkatkan dari Count Up Forever
sumber
ditumpuk , 9 byte
Cobalah online! Mirip dengan jawaban Count up forever saya , ini menghasilkan bilangan asli dari
0
, penghitung.sumber
Bourne Shell, 11 byte
sumber
TI-Basic, 11 Bytes
sumber
GNU sed , 13 byte
Ini adalah penghitung presisi acak di unary. Itu cara yang bagus untuk mengatakan bahwa saya menambahkan satu
0
ke ruang pola dan mencetaknya di setiap iterasi (infinite loop).Setelah beberapa waktu ini biasanya akan mengalami kesalahan alokasi memori dan berhenti mencetak, karena tidak dapat menyimpan lagi ruang pola yang terus berkembang. Itu bukan masalah untuk tantangan ini, karena ingatannya dianggap tidak terbatas.
Cobalah online! (penerjemah ini selanjutnya membatasi sumber daya yang tersedia berdasarkan desain)
Pratinjau keluaran: hanya 5 baris pertama
sumber
Sesos , 2 byte
SASM
SBIN
Mencetak semua bilangan bulat non-negatif secara berurutan.
Cobalah online!
sumber
set mask
arahan, Sesos menggunakan integer presisi sewenang-wenang.