업데이트 : 시간 제한이 제거되었습니다. 출력을 설명 할 수 있어야합니다 (새 규칙 참조).
팬 그램은 같은 적어도 한 번 알파벳의 모든 문자를 사용 문장입니다 :
완벽한 팬 그램은 정확히 한 번씩 편지를 사용합니다.
95 개의 인쇄 가능한 ASCII 문자 (16 진 코드 20-7E)를 알파벳으로 사용하여 완벽한 팬 그램 인 프로그램을 작성하십시오 .
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
이러한 프로그램에는 인쇄 가능한 각 ASCII 문자가 정확히 한 번, 순서에 관계없이 정확히 95 자 여야합니다. (따라서 95! = 1.03 × 10 148 가능성이 있습니다.)
당신의 임무는 stdout에 인쇄 가능한 인쇄 가능한 ASCII 문자의 수가 가능한 한 많도록 (즉, 많은)이 프로그램을 작성하는 것입니다.
당신의 점수는 인쇄 가능한 ASCII 문자 프로그램 출력의 수입니다 합니다 ( 총 금액이 아닌 별개 : 양 AABC
반면 점수 네 ABC
점수 3) . 가장 높은 점수가 이깁니다.
세부
- 출력에는 모든 문자 (중복 포함)가 포함될 수 있지만 95 개의 인쇄 가능한 ASCII 문자 인스턴스 만 점수에 포함됩니다.
- 이 JSFiddle 을 사용 하여 문자열에서 인쇄 가능한 ASCII 문자 수를 계산할 수 있습니다 .
- 귀하의 언어에 stdout이 없으면 가장 적합한 대안을 사용하십시오.
- 프로그램 ...
- 런타임이 유한해야합니다 (시간 제한이 제거되었습니다)
- 유한 한 출력이 있어야합니다
- 주석이 포함되어있을 수 있습니다
- (잡히지 않은) 오류없이 컴파일하고 실행해야합니다.
- 입력을 요구하거나 요구하지 않아야 함
- 시간이 변하지 않고 결정 론적이어야 함
- 외부 라이브러리를 사용해서는 안됩니다
- 네트워크 연결이 필요하지 않아야합니다
- 외부 파일을 사용해서는 안됩니다
- (파일 이름을 변경해도 프로그램의 동작이 변경되지 않는 한 프로그램 파일 자체를 사용할 수 있습니다)
- 이 작업이 불가능하다면 너무 나쁜 언어도 있습니다.
- 게시물에 맞추기에는 너무 큰 경우 정확한 결과를 제공 하거나 정확하게 설명해야합니다 . 실제로 프로그램을 실행할 필요는 없습니다. 만큼이 같은 것 메모리의 억제 할 수없는 양의 컴퓨터에서 일정한 시간에 실행이 유효합니다.
예
이 간단한 Python 2 프로그램은 가능한 솔루션입니다.
print 9876543210#!"$%&'()*+,-./:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghjklmoqsuvwxyz{|}~
9876543210
10 개의 인쇄 가능한 ASCII 문자가 포함 된 10 점을 출력 합니다.
a
상한선을 보였고 , 대안은 문자를 6 조회 인쇄하는 것과 같은 터무니없는 구조로 이어질 수 있기 때문에 분명히 총계가 아닌 규칙 이었다는 결론을 내렸다 . 문자 수. 어쨌든, 나는 비록 그것이 작은 경우에도 여전히 내 95를 자랑스럽게 생각합니다. 크기가 전부는 아닙니다.