2011-03-11 3 views
1

をチェックは私はある暗号(これは、私は楽しみのためにコーディングを経由して解決しようと思っただけで挑戦宿題ではない)と思われるもの持っているあらゆる可能なアルファベットの暗号の組み合わせ

これを解決しようとすると、アルファベットのすべての文字について可能な限りすべての暗号の割り当てを繰り返していきたいと思いますが(明らかにブルートフォースの方法で)、しかし私はそれについてエレガントな方法を理解することはできません。私は暗号の割り当ての現在の反復を取得したら、暗号にしたがって暗号テキストを変換し、最初の3文字の単語を3文字の単語リストと比較し、最後の2単語を5文字の単語リストと比較し、 3人が実際の単語としてチェックアウトしたら、結果をファイルに出力します。これは、間違った結果を取り除くための合理的な出発点のリストを私に与えるはずです。反復暗号を実装する方法について誰かが考えているなら、私は大いに感謝します。多くのおかげで、

ピーボディ

答えて

0

あなたはループの26 を持つことができます。

OK。冗談だよ。


擬似コードで明らかですが非効率バージョン:私はできませんので

for i = 0 - 26^26-1 
    /* a = i/26^25 % 26 
    ... 
    z = i/26^0 % 26 */ 
    if all deciphered words are in the word list 
    print 
    end if 
end for 

ところでが、私は、それはあなたの質問に言ったように解読する正しい方法だとは思いませんdoubleという英単語に同じ単語が存在する例があります。

+0

こんにちはダンテ、アドバイスありがとう!二重存在問題についてもっと詳しく説明できますか?私はあなたがそこに着くのを忘れていました。ありがとう! – Peabody

+0

@Peabody、私たちは、繰り返し言葉を言うことはほとんどありません。反対の例は次のとおりです:http://ja.wikipedia.org/wiki/James_while_John_had_had_had_had_had_had_had_had_had_had_had_a_better_effect_on_the_teacher –

関連する問題