직무
A-Z
선호하는 체계를 사용하여 0과 1 만 사용하여 대문자 알파벳 ( )으로 완전히 구성된 문자열을 인코딩 하십시오. 그러나 규칙은 그렇게 간단하지 않습니다!
규칙
- 프로그램 / 기능은 길이가 8 인 유효한 입력 문자열을 올바르게 처리해야합니다 .
- 모든 입력에 대해 결과의 길이는 동일해야합니다.
- 개별 입력에 대해 결과가 고유해야합니다.
- 결과는 가능한 짧아야합니다.
- 결과는 0에서 1로 균형을 이루어야합니다 ( 0 과 유사한 수의 숫자가 있어야 함 ). 그들은 같을 필요는 없지만 (즉, 완벽하게 균형을 잡을 수는 있지만) 당신의 점수는 그에 대해 벌점을받습니다.
인코딩을 디코딩하는 프로그램 / 기능을 제공 할 필요는 없습니다.
입력과 출력
- 대신 26 개의 고유 한 인쇄 가능한 ASCII 문자 세트를 허용하도록 결정할 수 있습니다
A-Z
. - 및 대신 인쇄 가능한 고유 ASCII 문자 쌍을 출력하도록 결정할 수 있습니다 .
0
1
- 당신은되는 출력의 정수 허용되지 는 앞에 0을 가질 수 있기 때문에, 대신의 비트 문자열을 당신이 실제로 규칙이 만난 경우는 불분명하다.
- 기본값 (
A-Z
입력 및01
출력) 에서 벗어나기로 결정한 경우 제출에서 입력 / 출력 문자 세트를 지정해야합니다.
채점
- 기본 점수 : 코드 크기 또는 프로그램이 비어있는 경우 1
- 페널티
- 길이에 대한 페널티 : 곱하기
1.5 ** (encoded length - 42)
- 더 짧은 보너스는 없습니다; 42는 알파벳 크기가 26 인 8 길이 문자열의 완벽하게 균형 잡힌 인코딩의 최소 길이입니다.
- 불평형 것에 대한 패널티 : 곱셈
2 ** max(abs(ones - zeros) for every valid input of length 8)
여기서ones
그리고zeros
1과 0의 개수는 각각 각 출력한다. - 귀하의 제출물은 최악의 사례 (입력 / 출력) 또는 페널티 값에 대한 이론적 설명을 보여 주어야합니다.
- 길이에 대한 페널티 : 곱하기
- 가장 낮은 점수가 이깁니다.
제출 예
가설 esolang, 0 바이트, 점수 74733.8906
비어있는 프로그램이 입력 문자의 모든 ASCII 코드를 이진으로 인쇄하는 가상의 esolang이 있습니다.
예를 들어, AAAAAAAA
입력으로 입력하면 프로그램이 1000001
연속으로 8 회 인쇄됩니다 ( 예 :) 10000011000001100000110000011000001100000110000011000001
.
입력 알파벳이로 선택되었습니다 CEFGIJKLMNQRSTUVXYZabcdefh
. 이런 식으로 모든 문자는 이진수로 7 자리로 변환되며 0-1 카운트는 문자 당 1 씩만 다릅니다 (이진수로 변환 될 때 모두 1과 4가 0이거나 그 반대).
출력 길이는 항상 56이고, 최악의 경우 불균형은과 같은 입력에서 발생하며, CCCCCCCC
0은 1보다 8 배 더 많이 나타납니다.
따라서이 제출 점수는 1.5 ** (56 - 42) * 2 ** 8 == 74733.8906
입니다.