귀하의 언어가 지원하는 5 가지 문자를 선택하십시오. 5 개가 있습니다! = 5 × 4 × 3 × 2 × 1 = 120 가지 방법으로 각 문자를 한 번 포함하는 5 문자열로 배열 할 수 있습니다. 120 순열 .
120 개의 문자열 각각이 귀하의 언어로 실행될 때 생성 된 120 개의 출력이 가능한 한 1에서 120까지의 많은 고유 정수가되도록 문자를 선택하십시오.
즉, 단일 숫자를 출력하는 실행 가능한 코드를 생성하는 5 개의 문자 중 120 개의 순열 각각에 대해 모든 숫자 세트가 가능한 한 1에서 120까지의 정수 세트와 일치하기를 원합니다.
따라서 이상적으로는 첫 번째 순열이 다음 , 최대, 1
다음 순으로 출력 됩니다 . 그러나 대부분의 언어와 문자에는 이상적이지 않을 수 있습니다.2
3
120
5 자 문자열은 다음과 같이 실행될 수 있습니다.
- 입력이없는 프로그램
- 인수가없는 함수
- REPL의 명령
원하는 경우 다른 문자열을 다른 방식으로 실행할 수 있습니다
출력을 계산하려면 다음 과 같은 일반적인 방식으로 단일 정수 출력이어야합니다 .
- 표준 출력으로 인쇄
- 함수에 의해 반환
- REPL 표현식의 결과
코드는 정상적으로 종료되어야합니다 ( 숫자가 먼저 출력 되는 한 오류 가 발생할 수 있습니다 ). 전혀 실행되지 않는 코드는 괜찮으며 (존재하지 않은) 출력 만 계산되지 않습니다. 언어의 기준이 다른 경우가 아니면 숫자 출력은 10 진수 여야합니다.
1에서 120 사이의 가장 뚜렷한 숫자를 생성하는 제출이 승리합니다. 동점 일 경우 이전 제출물이 이깁니다.
노트
- 5 개의 문자가 모두 다를 필요는 없지만 물론 중복 문자가 있으면 효과적인 순열 수가 줄어 듭니다.
32.0
수뿐만 아니라 일반 과 같은 부동 출력32
. (그러나32.01
그렇지 않습니다.)032
count 및 plain 과 같은 선행 032
.- 유효한 출력은 결정적이고 시간이 변하지 않아야합니다.
- 우리는 바이트가 아닌 문자를 다루고 있습니다.
예
이 문자 123+*
는 파이썬 (또는 많은 언어) REPL에 적합한 첫 번째 선택입니다. 결과 120 개의 순열 및 출력은 다음과 같습니다.
123+* n/a
123*+ n/a
12+3* n/a
12+*3 n/a
12*3+ n/a
12*+3 36
132+* n/a
132*+ n/a
13+2* n/a
13+*2 n/a
13*2+ n/a
13*+2 26
1+23* n/a
1+2*3 7
1+32* n/a
1+3*2 7
1+*23 n/a
1+*32 n/a
1*23+ n/a
1*2+3 5
1*32+ n/a
1*3+2 5
1*+23 23
1*+32 32
213+* n/a
213*+ n/a
21+3* n/a
21+*3 n/a
21*3+ n/a
21*+3 63
231+* n/a
231*+ n/a
23+1* n/a
23+*1 n/a
23*1+ n/a
23*+1 23
2+13* n/a
2+1*3 5
2+31* n/a
2+3*1 5
2+*13 n/a
2+*31 n/a
2*13+ n/a
2*1+3 5
2*31+ n/a
2*3+1 7
2*+13 26
2*+31 62
312+* n/a
312*+ n/a
31+2* n/a
31+*2 n/a
31*2+ n/a
31*+2 62
321+* n/a
321*+ n/a
32+1* n/a
32+*1 n/a
32*1+ n/a
32*+1 32
3+12* n/a
3+1*2 5
3+21* n/a
3+2*1 5
3+*12 n/a
3+*21 n/a
3*12+ n/a
3*1+2 5
3*21+ n/a
3*2+1 7
3*+12 36
3*+21 63
+123* n/a
+12*3 36
+132* n/a
+13*2 26
+1*23 23
+1*32 32
+213* n/a
+21*3 63
+231* n/a
+23*1 23
+2*13 26
+2*31 62
+312* n/a
+31*2 62
+321* n/a
+32*1 32
+3*12 36
+3*21 63
+*123 n/a
+*132 n/a
+*213 n/a
+*231 n/a
+*312 n/a
+*321 n/a
*123+ n/a
*12+3 n/a
*132+ n/a
*13+2 n/a
*1+23 n/a
*1+32 n/a
*213+ n/a
*21+3 n/a
*231+ n/a
*23+1 n/a
*2+13 n/a
*2+31 n/a
*312+ n/a
*31+2 n/a
*321+ n/a
*32+1 n/a
*3+12 n/a
*3+21 n/a
*+123 n/a
*+132 n/a
*+213 n/a
*+231 n/a
*+312 n/a
*+321 n/a
운 좋게도 1에서 120 사이에 36 개의 숫자가 생성됩니다.
36, 26, 7, 7, 5, 5, 23, 32, 63, 23, 5, 5, 5, 7, 26, 62, 62, 32, 5, 5, 5, 7, 36, 63, 36, 26, 23, 32, 63, 23, 26, 62, 62, 32, 36, 63
그러나 이들 중 8 개만 고유합니다.
36, 26, 7, 5, 23, 32, 63, 62
따라서 이러한 제출물은 최대 120 점 중 8 점에 불과합니다.
c
같은 언어 에서는 불가능 해 보인다 !