Програма A :
"iQ ²¯24
G²õ@i'#+Xd"iQ ²¯24
G²õ@i'#+Xd
Програма B довжиною понад 8 кБ, настільки довга, що посилання розривається, тому я не буду вставляти все. Ось зразок:
#þ"iQ ²¯24
G²õ@i'#+Xd"iQ ²,#ÿ"iQ ²¯24
G²õ@i'#+Xd"iQ ²,#Ā"iQ ²¯24
G²õ@i'#+Xd"iQ ²
Я не зміг знайти NUL
байт для роботи, тому програма B містить лише 255 унікальних символів. Програма B по суті складається з 255 копій однієї програми, де кожен невідповідний байт змінюється щоразу, а перші 254 виконання ігноруються.
Для пояснення я розпочну з цієї спрощеної версії A, щоб результат B був легшим для обговорення.
"iQ ²¯23
3õ@i'#+Xd"iQ ²¯23
3õ@i'#+Xd
Ця програма заснована на базовій Japt quine, здатній до корисної навантаження . Рядок на початку містить дублікат решти програми, iQ ²
вставляє цитату та дублікати для створення рядкового представлення всієї програми, а потім ¯23
обрізає себе та все після неї. Отриманий рядок - це програма, яка виводить програму A :
"iQ ²¯23
3õ@i'#+Xd"iQ ²
Я буду називати цей рядок як U
.
Останній рядок A дублює U
купу разів із невеликою зміною щоразу. Зокрема, для кожного числа X
в діапазоні [1...3]
він виводить, "#c" + U
де c
є символ з charcode X
. Поведінка Japt за замовчуванням полягає у виведенні цих рядків без лапок і розділених комами, тому це вихід нашого спрощеного A (зауважте, що між кожним #
та наступним байтом є недрукований байт "iQ
:
#"iQ ²¯23
3õ@i'#+Xd"iQ ²,#"iQ ²¯23
3õ@i'#+Xd"iQ ²,#"iQ ²¯23
3õ@i'#+Xd"iQ ²
Ми будемо називати цей УСНО B .
Спрощений B має просту структуру, чергується між #c
і U
. На щастя для цієї відповіді, кожен #c
і U
трактується як розділений комою, і в цій ситуації поведінка цього є всім, крім самого останнього U
, не впливає на вихід. Єдина частина спрощеного B, яка впливає на вихід, така:
"iQ ²¯23
3õ@i'#+Xd"iQ ²
Що ідентично тому, U
що ми вже знаємо результати спрощеного А.
Єдина відмінність між спрощеним A і програмою A полягає в тому, що замість створення копій для діапазону [1...3]
реальна програма створює копії для діапазону [1...256]
. Це призводить до 256 версій, #c
кожна з яких має різний характер, хоча остання версія "Ā" є багатобайтовим символом, тому вона не додає жодних унікальних байтів, але все, крім останнього U
, все ще ігнорується.