Para o posto de ladrões, máquina Cheapo Enigma (ladrões)
O envio de um policial consiste em um programa / função que aceita um único byte de dados e retorna um único byte de dados. Toda entrada possível deve produzir uma saída única. (Em outras palavras, sua função deve ser bijetiva)
Os ladrões tentarão criar a sua função inversa usando um código o mais curto possível. Portanto, seu objetivo é dificultar a inversão de sua função.
Você não pode usar built-ins com o único objetivo de hash ou criptografia.
Sua contagem de bytes não pode exceder 64 bytes. As soluções de 0 byte não são elegíveis para ganhar.
Formato de entrada / saída
8 bits (0 ou 1) ou um número inteiro de base 10 no intervalo de 1-256, 0-255 ou -128 a 127. Pode usar E / S padrão ou E / S de arquivo. A função também pode retornar um valor como saída. A entrada e a saída devem pertencer ao mesmo intervalo (binário, 1-256, 0-255 ou -128 a 127). O ladrão também precisará usar esse intervalo para entrada e saída.
Pontuação
A proporção da contagem de bytes é a da melhor tentativa de ladrão contra você. Menor pontuação ganha.
Você é elegível para ganhar (como policial) somente se um ladrão tentar derrotá-lo. (Este ladrão pode ser você)
Exemplo
C ++, usa intervalo de 0 a 255, 31 bytes
int x;
cin>>x;
cout<<(x+1)%256;
Possível envio de ladrão em C ++, 32 bytes
int f(int x)
{return x?x-1:255;}
Usar a mesma linguagem ou algoritmo semelhante não é um requisito
Isso dá uma pontuação de 31/32 = 0,97 para o policial e o ladrão.