HashMap
各文字の頻度を文字、整数の形式で暗号文のブロックに格納する があります。次に、マップは降順でソートされLinkedHashMap
ます。
次に、これらの頻度を既知の文字頻度のリストと比較して、暗号文字が何であるかを推測します。私が遭遇した問題は、2 つ以上の文字が同じ回数発生する場合です。
たとえば、次のようにします。
E T A O I
5 つの最も一般的な文字 desc として、次に暗号文の文字頻度:
D=30 B=25 I=22 G=19 H=17
その場合、 toが最も一般的であり、それに to などが続くとD
想定するのが妥当でしょう。E
B
T
文字の頻度が次の場合:
D=30 B=25 I=22 G=22 H=22
これらはすべて の次に一般的であるため、 にマップするかどうかI
、G
またはにマップする必要があるかどうかは不明です。H
A
B
私は少し行き詰まっており、頻度リストの各順列で一連の char 配列を作成する方法が必要です。char 配列で出力するには、次のようなものが必要です。
DBIGH
DBIHG
DBGIH
DBGHI
DBHIG
DBHGI
どんな助けでも大歓迎です