아시다시피 quine은 자체 소스 코드를 출력하는 프로그램입니다. 그러나 다른 프로그램을 출력하여 첫 번째 프로그램을 다시 출력하는 프로그램을 작성할 수도 있습니다. 예를 들어 Python 2 프로그램
x = '''x = {}
print 'print '+'"'*3+x.format("'"*3+x+"'"*3)+'"'*3'''
print 'print '+'"'*3+x.format("'"*3+x+"'"*3)+'"'*3
실행하면 다음 텍스트가 출력됩니다.
print """x = '''x = {}
print 'print '+'"'*3+x.format("'"*3+x+"'"*3)+'"'*3'''
print 'print '+'"'*3+x.format("'"*3+x+"'"*3)+'"'*3"""
파이썬 프로그램으로 실행하면 원래 코드가 다시 출력됩니다. 이것을 반복 반복 이라고합니다 . 원래 코드를 다시 가져 오려면 두 번 실행해야하므로 기간이 2 입니다. 그러나 물론 훨씬 더 높은 기간이 가능합니다.
당신의 도전은 당신이 선택한 언어로, 당신이 할 수있는 한 100 바이트 이하 의 반복 퀴니를 작성하는 것 입니다. (위의 예제는 후행 줄 바꿈을 포함하여 119 바이트 이므로이 사양에 맞지 않습니다.)
다음 규칙 및 설명을 참고하십시오.
- 일반적인 quine 규칙이 적용됩니다. 즉, 프로그램에서 자체 소스 코드에 직접 액세스 할 수있는 언어 기능을 사용할 수 없습니다.
- 반복 된 출력은 결국 원래 코드로 정확하게 되돌아 가야하며, 데모 또는이를 증명해야합니다.
- 주기가 왜 오래 지속되는지에 대한 설명도 포함해야합니다. 이것은 수학적 증거의 수준 일 필요는 없지만, 당신의 언어에 익숙한 누군가에게 설득력이 있어야합니다. (이 규칙은 일부 답변에 매우 많은 숫자가 포함될 것으로 기대하기 때문에 여기에 있습니다.)
- 적어도 그 길이가 길다는 것을 증명할 수있는 한, 정확한 수를주는 것보다는 "최소 1,000,000 회 반복"과 같은 것을 말하는 것이 좋습니다. 이 경우 점수는 1,000,000입니다. 그렇지 않으면, 당신의 점수는 quine의 기간입니다.
- 100 바이트 제한은 초기 프로그램에만 적용됩니다. 물론 원래 코드를 출력하려면 출력이 100 바이트로 줄어야합니다.
- 머신에 무한 RAM과 무한 런타임이 있다고 가정 할 수 있지만, 언어에 무한정 정밀도 데이터 유형 (예 : 정수)이 있다고 가정 할 수는 없습니다. 당신은 할 수 귀하의 파서가 처리 할 수있는 입력의 길이에 제한이 없음을 가정합니다.
- 가장 높은 점수가 이깁니다.
참고 : Quit Whining 이라는 기존 과제가 있습니다 . 퀴 반복과 관련된 Quining 을 시작하십시오 . 그러나 동일한 개념을 기반으로하는 것 외에도 완전히 다른 유형의 과제입니다. 다른 하나는 곧바로 코드 골프이고, 다른 하나는 (의도적으로!) 변장에서 정말 바쁜 비버 문제입니다. 이 질문에 대한 정답을 얻는 데 필요한 기술은 다른 질문에 대답하는 데 필요한 기술과 매우 다를 수 있으며 이는 의도적으로 설계된 것입니다.