X-Git-Url: http://git.tomasm.cz/krypto.git/blobdiff_plain/09f076927cd6294ae6c3db9268496dc3a8fc87f4..b37a2ddbb7e704a2252389c58c7c0d1ef83114e7:/jakobsen.py diff --git a/jakobsen.py b/jakobsen.py index 25f01dc..5c0aa24 100644 --- a/jakobsen.py +++ b/jakobsen.py @@ -51,23 +51,23 @@ class reference: pass def jakobsen(zprava, ref): - slovnik = dict(zip(poradi_dle_frekvence(zprava), ref.poradi)) - tabulka = nova_tabulka(substituce(zprava, slovnik)) - vzdal = vzdalenost(tabulka, ref.tabulka) + slovnik = dict(zip(poradi_dle_frekvence(zprava, ref.abeceda), ref.poradi)) + tabulka = nova_tabulka(substituce(zprava, slovnik, ref.abeceda), ref.abeceda) + vzdal = vzdalenost(tabulka, ref.tabulka, ref.abeceda) vzdal_old = vzdal + 1 while vzdal_old > vzdal: vzdal_old = vzdal for (x, y) in combinations(ref.abeceda, 2): slovnik[x], slovnik[y] = slovnik[y], slovnik[x] - v1 = vzdalenost(nova_tabulka(substituce(zprava, slovnik)), - ref.tabulka) + v1 = vzdalenost(nova_tabulka(substituce(zprava, slovnik, ref.abeceda), ref.abeceda), + ref.tabulka, ref.abeceda) if v1 < vzdal: vzdal = v1 else: slovnik[x], slovnik[y] = slovnik[y], slovnik[x] - return '\n'.join([''.join(substituce(zprava, slovnik)), + return '\n'.join([''.join(substituce(zprava, slovnik, ref.abeceda)), ' '.join(ref.abeceda), ' '.join([slovnik[c] for c in ref.abeceda])])