1

HashMap各文字の頻度を文字、整数の形式で暗号文のブロックに格納する があります。次に、マップは降順でソートされLinkedHashMapます。

次に、これらの頻度を既知の文字頻度のリストと比較して、暗号文字が何であるかを推測します。私が遭遇した問題は、2 つ以上の文字が同じ回数発生する場合です。

たとえば、次のようにします。

E T A O I

5 つの最も一般的な文字 desc として、次に暗号文の文字頻度:

D=30 B=25 I=22 G=19 H=17

その場合、 toが最も一般的であり、それに to などが続くとD想定するのが妥当でしょう。EBT

文字の頻度が次の場合:

D=30 B=25 I=22 G=22 H=22

これらはすべて の次に一般的であるため、 にマップするかどうかIGまたはにマップする必要があるかどうかは不明です。HAB

私は少し行き詰まっており、頻度リストの各順列で一連の char 配列を作成する方法が必要です。char 配列で出力するには、次のようなものが必要です。

DBIGH
DBIHG
DBGIH
DBGHI
DBHIG
DBHGI

どんな助けでも大歓迎です

4

1 に答える 1