하이퍼 프로그래밍에서 영감을 얻음 : N + N, NxN, N ^ N 모두 하나로 .
샌드 박스에 대한 도움을 주신 @MartinEnder와 @trichoplax에게 감사합니다.
정의
하이퍼 퀸
차수 n 의 하이퍼 퀸 을 퀴인 과 같은 전체 프로그램 또는 함수 P 로 정의하여 적절한 퀴네에 적용되는 모든 규칙을 충족하고 또한 다음과 같은 구조를 갖습니다.
P는 캐릭터의 연쇄이다 ‡ 구성 그룹 N 개의 동일한 문자의 사본. 경우 P가 실행되면, 출력 문자의 하나 이상의 카피에서 동일한 증강 기의 연결이다.
예
소스 코드
aabbcc
가 출력을 생성 하는 가상 프로그래밍 언어aaabbbccc
에서이 프로그램은 차수 2 의 하이퍼 퀸을 구성합니다 .정의 에 따라 다른 그룹의 문자가 다를 필요 는 없습니다 .
소스 코드
aabbcc
가 출력을 생성하면aaaabbbbcccc
프로그램은 차수 1 의 하이퍼 퀸입니다 . 소스 코드는 6 개의 단일 문자 그룹, 6 개의 문자 쌍 출력으로 구성됩니다.에서 GS2 , 빈 프로그램 인쇄
\n
, 프로그램\n
인쇄\n\n
. 그러나 하이퍼 퀸은 적절한 퀴의 모든 특성을 만족시키지 않기 때문에 하이퍼 퀸 도\n
아닙니다 . 소스 코드의 어떤 부분도 출력 의 다른 부분을 인코딩하지 않습니다 .\n\n
하이퍼 퀸 체인
길이 n 의 하이퍼 퀸 체인 을 다음과 같은 제약 조건을 만족하는 n 개의 완전한 프로그램 또는 n 개의 함수 (P 1 ,…, P n ) 의 유한 시퀀스로 정의하십시오 .
P 1 ,…, P n-1 의 출력은 각각 P 2 ,…, P n 입니다.
P 1 ,…, P n 은 하이퍼 퀸이다.
P 1 ,…, P n 의 차수는 인접 정수 의 엄격하게 증가하는 시퀀스를 형성합니다 .
마지막으로, 각 초기 간격 (P 1 ,…, P n ) 이 길이 n 의 하이퍼 퀸 체인을 구성 하도록 무한 하이퍼 퀸 체인 을 완전한 프로그램 또는 함수 (P 1 , P 2 ,…) 의 무한 시퀀스로 정의하십시오 .
예
소스 코드는 가상의 프로그래밍 언어로
aabbcc
출력 생성aaabbbccc
차례로 출력 생성하고,aaaabbbbcccc
상기 한 쌍의 (aabbcc
,aaabbbccc
) 길이 hyperquine 체인 구성 2 .참고
aaaabbbbcccc
- 체인의 마지막 hyperquine의 출력이 - 특정 출력을 생성 할 필요가 없습니다 유효한 소스 코드 일 필요도 없습니다.만약, 이전의 예를 계속
aaaabbbbcccc
출력 생성aaaaabbbbbccccc
의 트리플렛 (aabbcc
,aaabbbccc
,aaaabbbbcccc
)의 길이 hyperquine 체인 구성 3 .이 패턴이 영원히 계속되면, 시퀀스 (
aabbcc
,aaabbbccc
,aaaabbbbcccc
...) hyperquine 무한 체인을 구성한다.프로그램 (쌍
abc
,aabbcc
출력을 갖는)은 (aabbcc
,aaaabbbbcccc
)이다 하지 hyperquines의 순서는 모두 때문에, hyperquine 쇄 1 가 엄격 증가 시퀀스를 형성하지 않도록.프로그램 (쌍
aabbcc
,aaaabbbbcccc
출력을 갖는)은 (aaaabbbbcccc
,aaaaabbbbbccccc
)이다 하지 hyperquines의 명령이 때문에, hyperquine 쇄 1 과 4 가 인접하는 정수의 시퀀스를 형성하지 않도록.
규칙
태스크
A의 프로그래밍 언어 선택의, 즉 비 사소한 hyperquine 체인, 적어도 구성 체인 쓰기 2 hyperquines합니다.
평소와 같이 프로그램은 어떤 형식으로도 입력을 받거나 자신의 소스 코드에 액세스 할 수 없습니다.
통역사가 암시 적 개행을 인쇄하는 경우 하이퍼 퀸 이이를 설명해야합니다.
모든 표준 허점 ( 특히 퀴네 관련 구멍)이 적용됩니다.
채점
가장 긴 하이퍼 퀸 체인이 이깁니다. 두 개 이상의 제출이 연결되어있는 경우, 가장 짧은 hyperquine 시작이 중 제출 (문자 단위로 측정 ‡ 승). 평소와 같이 게시 시간이 최종 순위 결정자입니다.
‡ 당신은 소스 코드, 출력, 글자 수, 및 실행을위한 동일한 문자 인코딩을 사용해야합니다. 예를 들어, 인터프리터는 각 바이트를 단일 문자로 취급하므로 Python 프로그램 print 42
은 2 문자 UTF-32 제출 이 아닙니다 . 선택한 언어가 문자 기반이 아닌 경우 모든 개별 바이트를 문자로 취급하십시오.