これは、PI数字を使用してメッセージをエンコードする単純な暗号化方法です。この方法は単純です。
キーは、ウィンドウの開始位置を示す正の整数です。
スペースを含まない小文字のみを含む暗号化する文字列を指定すると、その長さを取得し、PIのN番目の数字を見つけて、数字で示された量だけすべての文字を右にシフトします。
たとえば、キーがで2
、エンコードするhouse
場合、2番目のキーから5桁のウィンドウを取得します。14159
その後、次のようになります。
h -> i
o -> s
u -> v
s -> x
e -> n
a。-プログラム/関数/アルゴリズムは2つのパラメーターを受け取ります。1つはスペースを含まない小文字とキーのみで構成される文字列で、1(1は3を参照)と1000の間の正の整数になります。以下の理由で、上記の精度でPIを計算するのにどれくらいの時間がかかるかよくわかりません。
b.-コード内でPIを自分で計算する必要があります。これは、Pi Dayと比較するためのきちんとしたWebページです。入力では、1000桁を超えるPIを計算することはありません。つまり、length(message)+ key <= 1000です。
Piを計算することにより、コード内でそれをハーコードしたり(コードゴルフのような)、コードに埋め込まれた定数を使用したり、三角関数のID(2 * acos(0))やWeb参照を使用したりしません。
c.-出力は暗号化された文字列になります。
これはコードゴルフの質問です。短いコードが勝ちます!
2014年7月14日に受賞の回答を受け入れます。
ArcCos(-1)
?