도둑의 게시물, Cheapo Enigma 기계 (고무)
경찰의 제출은 단일 바이트 데이터를 받아들이고 단일 바이트 데이터를 반환하는 프로그램 / 함수로 구성됩니다. 가능한 모든 입력은 고유 한 출력을 생성해야합니다. (즉, 함수는 형용사 적이어야합니다)
강도는 가능한 짧은 코드를 사용하여 역함수를 만들려고 시도합니다. 따라서 목표는 함수를 반전시키기 어렵게 만드는 것입니다.
해싱 또는 암호화만을 목적으로하는 내장 기능을 사용할 수 없습니다.
바이트 수는 64 바이트를 초과 할 수 없습니다. 0 바이트 솔루션은 이길 수 없습니다.
입출력 형식
8 비트 (0 또는 1) 또는 1-256, 0-255 또는 -128 ~ 127 범위의 10 진 정수입니다. 표준 I / O 또는 파일 I / O를 사용할 수 있습니다. 함수는 값을 출력으로 반환 할 수도 있습니다. 입력 및 출력은 동일한 범위 (2 진, 1-256, 0-255 또는 -128-127)에 속해야합니다. 강도는 또한이 범위를 입력 및 출력에 사용해야합니다.
채점
당신에 대한 최고의 강도 시도에 대한 바이트 수의 비율. 최저 점수가 이깁니다.
강도가 당신을 물리 치려고 시도한 경우에만 (경찰로서) 이길 자격이 있습니다. (이 강도는 당신이 될 수 있습니다)
예
C ++, 0-255 범위, 31 바이트 사용
int x;
cin>>x;
cout<<(x+1)%256;
C ++, 32 바이트의 가능한 강도 제출
int f(int x)
{return x?x-1:255;}
동일한 언어 또는 유사한 알고리즘을 사용하는 것은 필수가 아닙니다
이것은 경찰과 강도 모두에게 31/32 = 0.97의 점수를줍니다.