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])])
if mod_m:
analyza.append("\nJakobsen (s mezerami):")
analyza.append(jakobsen.desifruj(zprava, './ref'))
+if mod_x:
+ analyza.append("\nJakobsen (bez mezer):")
+ analyza.append(jakobsen.desifruj(zprava, './bref'))
# Posuny v abecede
# TODO najit nejvhodnejsi posuny a vypsat jenom ty