7 , 23 자, 9 바이트
54340045141332401057403
온라인으로 사용해보십시오!
이것은 완전히 숫자로 구성된 언어에서 상당히 어려운 문제이지만 관리했습니다.
이것은 7 인코딩에서 단지 9 바이트입니다. (엄밀하게 말하면, 마지막 2 개의 후행 1 비트를 생략 할 수 있기 때문에 8⅜ 바이트 (23 × ⅜ − ¼)이지만 처음으로 PPCG가 전체 바이트 수로 반올림해야한다는 것은 실제로 이점이됩니다. 여분의 후행 1 비트가 필요하므로 질문에 의해 금지되지 않습니다.) 가역적 16 진수 덤프 :
00000000: b1c0 2530 b6a0 22f8 1f ..%0.."..
7에서이 프로그램을 작성의 주요 과제는 (사용하지 않고 7을 쓰기로 (10)에 따라 바이트에 골프 된 0
또는 1
매우 어렵다.)이 "안녕하세요 세계"프로그램을 표준으로 동일한 구조를 사용합니다 :
5434004514133240105 7 403
5434004514133240105 명령 0-5는 데이터 공간에 리터럴을 추가합니다
7 데이터 공간의 새로운 섹션을 시작
403 데이터 공간에 추가 된 또 다른 리터럴
{암시 적 : 마지막 섹션을 명령으로 평가}
4 6 사이에 빈 섹션이있는 첫 번째와 두 번째 섹션을 바꾸면 첫
번째 섹션 3 출력을 생성하는 명령을 재구성합니다
(+ 우리가 신경 쓰지 않는 다른 효과)
다시 말해, 데이터 공간의 두 섹션을 만드는 것으로 시작합니다. 우리는 두 개의 리터럴을 가지고 있으며, 각각은 일련의 명령을 푸시합니다. 두 번째 섹션은 스택 스타일로 푸시되었으므로 첫 번째 푸시 = 마지막 팝은 상당히 임의의 명령 시퀀스이지만 명령 시퀀스를 사용하여 푸시됩니다 5434004514133240105
(따라서 데이터 시퀀스 생성 5434664574733246765
; 텍스트에서 7을 논의 할 때 일반적으로 일반 글꼴을 사용합니다) 리터럴을 푸시하고 해당 결과 리터럴에 굵게 표시하는 명령). 첫 번째 섹션은 명령 시퀀스를 사용하여 403
생성되어 생성 463
됩니다. 그런 다음 첫 번째 섹션이 프로그램에 다시 복사됩니다 (암시 적 동작 7).
은 463
이제 (비 굵게) 단지 리터럴을 밀어 것을 명령하기보다는 즉시 뭔가를 (굵게) 명령으로 구성되어있다. 4
"문자열 리터럴"을 첫 번째 섹션으로 가져 오도록 섹션을 재정렬합니다. 그런 다음 0
7이 가장 잘 알려진 작업을 수행합니다. 데이터 공간의 일부를 가져 와서이를 생성했을 가능성이 가장 높은 명령 시퀀스를 재구성합니다. 원래 명령 순서가 모두 0
- 5
였다면, 이것은 100 % 정확합니다 (의심 할 여지없이, 명령이 데이터를 순수하게 푸시하여 수행 한 작업에 대한 명백한 증거를 남기므로), 원래의 순서를 5434004514133240105
다시 얻 습니다. 마지막으로 3
인쇄합니다.
따라서 여기서 볼 나머지 것은 문자열의 인코딩입니다. 고유 한 도메인 별 언어가 있습니다.
5434004514133240105
5 change encoding: 6 bits per character
43 select character set: digits and common symbols
40 '9'
04 space
51 select character set: uppercase letters
4133240105 'B' 'Y' 'T' 'E' 'S'
( "숫자 및 공통 기호"문자 세트에는 "문자 세트 선택 : 소문자"가 없습니다. 먼저 다른 문자 세트를 거쳐야합니다. 따라서 유효 문자 아래에 맞도록 충분히 짧게 골프를 칠 때는 대문자를 사용해야했습니다. 바이트 제한)