Tantangan
Dalam tantangan ini, Anda akan menulis program pertama, p 1 , dari urutan tak terbatas program, di mana menjalankan p n output / menghasilkan program yang p n + 1 . Saat menggabungkan program n> = 2 pertama, urutannya akan ditampilkan n
.
Contoh
Katakanlah 4 program pertama adalah:
p1 p2 p3 p4
Jika saya menjalankan p1
, itu akan menghasilkan:
p2
Jika saya menjalankan p1p2
, itu akan menghasilkan:
2
Jika saya menjalankannya p1p2p3p4
harus menampilkan:
4
Jika saya menjalankan p4
, itu akan menghasilkan program berikutnya dalam urutan:
p5
Mencetak gol
Skor Anda adalah jumlah byte dari 10
program pertama .
code-challenge
code-generation
Downgoat
sumber
sumber
p1p2p3...
selalu dari p1 ke pn ?Jawaban:
Pyth, 12
p1:
p2:
1
p3:
1
dll ..
p1p2p3:
Keluaran:
3
Penjelasan:
Pada jalankan pertama, ini menghasilkan panjang string karakter tunggal
1
,. Ini juga merupakan program Pyth yang valid, menghasilkan1
lagi. Karenanya, pn +1 selalu1
. Ketika program dirantai,p1
output panjang dari program yang dirantai, yang akan menjadin
.sumber
Lua,
950900 byteTidak Disatukan:
Penjelasan:
Baris pertama mengambil seluruh sumber program. Kemudian kami membandingkan panjang keseluruhan program dengan 1+ panjang satu program tunggal. Jika ukuran program saat ini lebih kecil dari nilai ini, dari sumber yang dicetak, yang merupakan program berikutnya, p2, dan kami keluar. Setiap iterasi hanyalah quine. Ketika beberapa di antaranya disatukan, kondisasinya gagal, dan kami mencetak panjang dari program gabungan dibagi dengan panjang satu program, yang merupakan jumlah program gabungan, n.
sumber
Vitsy , 19 byte
Tidak berurusan dengan string di sini, tetapi menggunakan trik metode.
p1
p2
p3
Begitu seterusnya, begitu seterusnya.
Penjelasan di bawah ini:
Cobalah online!
sumber
Vitsy , 14 byte
Mirip dengan jawaban Pyth dan Jolf, saya memetakan string. Satu-satunya perbedaan adalah bahwa saya menggunakan fitur pembungkus garis untuk memastikan saya selalu mendapatkan panjang yang tepat.
p1
p2
Ganti 1 dengan nomor tunggal apa pun.
p3 dan seterusnya cocok dengan pola ini, dan Anda bisa melakukan ini sampai
Integer.MAX_VALUE
, batasan bilangan bulat bahasa.Penjelasan:
Cobalah online!
sumber
Serius, 15 byte
Program pertama, 6 byte (berisi yang tidak patut dicetak):
Hex Dump:
Program ini mencetak
1
: Cobalah secara onlineSemua program lainnya adalah program yang
1
valid yang mencetak dirinya sendiri seperti jawaban Pyth. Program asli mencetak panjang kode sumbernya minus 5 dan segera berakhir.1
s ditambahkan ke ujung menambah panjang kode sumber sebanyak 1 byte setiap kali, tetapi tidak pernah dieksekusi.sumber
Jolf , 14 byte
Coba di sini!
Ketika dijalankan, ini akan dicetak
1
. Jadip2 = 1
,. Mengeksekusip2
hasil1
. Jadi, untuk semuaN > 1
,pN = 1
.Perhatikan
p1p2
:a-1q41
. Ini transparan ke:Karena pencetakan implisit dinonaktifkan setelah cetakan pertama, ini dicetak
2
, karena panjang kode sumber minus 4 adalah 2. Dan terus dan terus.sumber
Ruby, 318 byte
p 1 :
Setiap program p terpisah i output ini satu-line Quine:
_="_=%p;puts _%%_";puts _%_
.Ketika Anda menambahkan quines ini ke akhir p 1 , mereka berakhir sebagai garis dalam
DATA
objek karena mereka di bawah sihir__END__
.Inilah tesnya:
Sepuluh program pertama yang disatukan terlihat seperti ini (318 byte):
sumber
C #, 2099 + 7 = 2106 byte
Program pertama (menggunakan flag kompiler
/main:A
):Program kedua:
Program ketiga:
Anda mendapatkan idenya.
sumber
Javascript ES6, skor
483455Program 1, 77 byte:
Program 2 dan seterusnya, masing-masing 42 byte:
sumber
PHP, 1470 byte
Program 1: 219 byte:
progam 2 dan lebih dari 139 byte:
gunakan seperti:
Menggunakan versi yang sedikit golf teknik quine php yang dirinci di sini: http://10types.co.uk/the-lab/a-minimal-php-quine/
sumber