프로그램 A :
"iQ ²¯24
G²õ@i'#+Xd"iQ ²¯24
G²õ@i'#+Xd
프로그램 B의 길이가 8kB 이상이므로 링크가 끊어지기 때문에 모든 것을 붙여 넣지 않습니다. 샘플은 다음과 같습니다.
#þ"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
범위의 각 숫자 에 대해 charcode 문자가있는 위치를 [1...3]
출력 합니다. Japt의 기본 동작은 따옴표없이 쉼표로 구분 된 문자열을 출력하는 것이므로 Simplified A의 출력입니다 (각각 과 사이에 인쇄 할 수없는 바이트가 있음에 유의하십시오) ."#c" + U
c
X
#
"iQ
#"iQ ²¯23
3õ@i'#+Xd"iQ ²,#"iQ ²¯23
3õ@i'#+Xd"iQ ²,#"iQ ²¯23
3õ@i'#+Xd"iQ ²
이것을 Simplified B 라고합니다 .
단순화 B는 교대로, 구조가 간단 #c
하고 U
. 다행히이 답변을 위해, 각 #c
과는 U
쉼표 (,)로 구분으로 처리하고, 아주 마지막을 제외하고이 상황에서 그의 행동이 전부입니다 U
출력에 영향을주지 않습니다. 출력에 영향을주는 Simplified B의 유일한 부분은 다음과 같습니다.
"iQ ²¯23
3õ@i'#+Xd"iQ ²
U
우리는 이미 출력 단순화 A를 알고있는 것과 동일합니다 .
Simplified A와 Program A의 유일한 차이점은 범위에 [1...3]
대한 사본을 생성하는 대신 실제 프로그램 이 범위에 대한 사본을 생성한다는 것입니다 [1...256]
. 256 버전에서 그 결과 #c
각각의 마지막 버전 "A"는 고유 바이트를 추가하지 않도록 멀티 바이트 문자가 있지만, 마지막 제외한 모든는하지만, 다른 문자가 U
여전히 무시됩니다.