強盗の投稿、Chepo Enigmaマシン(強盗)
警官の提出は、1バイトのデータを受け入れ、1バイトのデータを返すプログラム/関数で構成されます。可能な入力はすべて、一意の出力を生成する必要があります。(つまり、関数は全単射でなければなりません)
強盗は、可能な限り短いコードを使用して、あなたの逆関数を作成しようとします。だからあなたの目的は、あなたの機能を逆転させることを困難にすることです。
ハッシュまたは暗号化のみを目的とするビルトインを使用することはできません。
バイト数は64バイトを超えることはできません。0バイトのソリューションは勝ちません。
入出力フォーマット
8ビット(0または1)、または範囲1〜256、0〜255、または-128〜127の10進整数。標準I / OまたはファイルI / Oを使用できます。関数は、出力として値を返すこともできます。入力と出力は同じ範囲(バイナリ、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のスコアが与えられます。