Program A :
"iQ ²¯24
G²õ@i'#+Xd"iQ ²¯24
G²õ@i'#+Xd
Program B lebih dari 8kB, sangat lama sehingga tautannya terputus, jadi saya tidak akan menempel semuanya. Berikut ini contohnya:
#þ"iQ ²¯24
G²õ@i'#+Xd"iQ ²,#ÿ"iQ ²¯24
G²õ@i'#+Xd"iQ ²,#Ā"iQ ²¯24
G²õ@i'#+Xd"iQ ²
Saya tidak dapat menemukan cara untuk mendapatkan NUL
byte untuk bekerja, itulah sebabnya program B hanya memiliki 255 karakter unik. Program B pada dasarnya terdiri dari 255 salinan dari satu program, di mana satu byte yang tidak relevan diubah setiap kali, dan 254 eksekusi pertama diabaikan.
Untuk penjelasannya, saya akan mulai dengan versi A yang disederhanakan ini sehingga B yang dihasilkan lebih mudah untuk dibahas.
"iQ ²¯23
3õ@i'#+Xd"iQ ²¯23
3õ@i'#+Xd
Program ini didasarkan pada quine Japt payload-mampu dasar . String pada awalnya berisi duplikat dari sisa program, iQ ²
menyisipkan kutipan dan duplikat untuk membuat representasi string dari seluruh program, dan kemudian ¯23
memotong sendiri dan semuanya setelahnya. String yang dihasilkan adalah program yang menghasilkan Program A :
"iQ ²¯23
3õ@i'#+Xd"iQ ²
Saya akan menyebut string ini sebagai U
.
Baris terakhir A menduplikasi U
beberapa kali dengan perubahan kecil setiap kali. Khususnya, untuk setiap angka X
dalam rentang [1...3]
itu menghasilkan di "#c" + U
mana c
karakter dengan kode sandi X
. Perilaku default Japt adalah untuk mengeluarkan string tersebut tanpa tanda kutip dan dipisahkan dengan koma, jadi ini adalah output dari A Sederhana kami (perhatikan bahwa ada byte yang tidak diinginkan antara masing #
- masing dan "iQ
:
#"iQ ²¯23
3õ@i'#+Xd"iQ ²,#"iQ ²¯23
3õ@i'#+Xd"iQ ²,#"iQ ²¯23
3õ@i'#+Xd"iQ ²
Kami akan menyebutnya B Sederhana .
B Sederhana memiliki struktur sederhana, bergantian antara #c
dan U
. Untungnya untuk jawaban ini, masing #c
- masing dan U
diperlakukan sebagai dipisahkan oleh koma, dan dalam situasi ini perilaku itu adalah segalanya kecuali yang terakhir U
tidak berpengaruh pada output. Satu-satunya bagian dari B Sederhana yang mempengaruhi output adalah ini:
"iQ ²¯23
3õ@i'#+Xd"iQ ²
Yang identik dengan U
yang kita sudah tahu output A. Sederhana
Satu-satunya perbedaan antara A Sederhana dan Program A adalah bahwa alih-alih menghasilkan salinan untuk rentang [1...3]
program nyata menghasilkan salinan untuk rentang [1...256]
. Yang menghasilkan 256 versi yang #c
masing - masing memiliki karakter yang berbeda, meskipun versi terakhir "Ā" adalah karakter multi-byte sehingga tidak menambahkan byte unik, tetapi semuanya kecuali yang terakhir U
masih diabaikan.