Программа А :
"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 с поддержкой полезной нагрузки . Строка в начале содержит дубликат остальной части программы, iQ ²вставляет кавычки и дубликаты, чтобы создать строковое представление всей программы, а затем ¯23обрезает себя и все после нее. Результирующая строка является программой, которая выводит Программу A :
"iQ ²¯23
3õ@i'#+Xd"iQ ²
Я буду ссылаться на эту строку как U.
Последняя строка A дублирует Uмножество раз с небольшими изменениями каждый раз. В частности, для каждого числа Xв диапазоне [1...3]он выводит "#c" + Uгде cсимвол с кодом 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, не влияет на вывод. Единственная часть Simplified B, которая влияет на вывод, это:
"iQ ²¯23
3õ@i'#+Xd"iQ ²
Что идентично тому, Uчто мы уже знаем, выходы упрощены А.
Единственное отличие между Упрощенной A и Программой A состоит в том, что вместо генерации копий для диапазона [1...3]настоящая программа генерирует копии для диапазона [1...256]. Это приводит к 256 версиям, #cкаждая из которых имеет свой символ, хотя последняя версия «is» является многобайтовым символом, поэтому она не добавляет уникальных байтов, но все, кроме последнего, Uпо-прежнему игнорируется.