kosmeticke upravy
[krypto.git] / jakobsen.py
index 5c0aa24..40a1d1c 100644 (file)
@@ -13,13 +13,11 @@ def nova_tabulka(zprava, abc=MABECEDA):
         for j in abc:
             tabulka[i][j] = 0
     for i in range(len(zprava) - 1):
         for j in abc:
             tabulka[i][j] = 0
     for i in range(len(zprava) - 1):
-        if zprava[i] in tabulka and zprava[i+1] in tabulka[zprava[i]]:
-            tabulka[zprava[i]][zprava[i+1]] += 1
+        tabulka[zprava[i]][zprava[i+1]] += 1
     celkem = sum(sum(tab2.values()) for tab2 in tabulka.values())
     celkem = sum(sum(tab2.values()) for tab2 in tabulka.values())
-    if celkem != 0:
-        for i in abc:
-            for j in abc:
-                tabulka[i][j] /= float(celkem)
+    for i in abc:
+        for j in abc:
+            tabulka[i][j] /= float(celkem)
     return tabulka
 
 def vzdalenost(tab1, tab2, abc=MABECEDA):
     return tabulka
 
 def vzdalenost(tab1, tab2, abc=MABECEDA):
@@ -66,13 +64,17 @@ def jakobsen(zprava, ref):
                 vzdal = v1
             else:
                 slovnik[x], slovnik[y] = slovnik[y], slovnik[x]
                 vzdal = v1
             else:
                 slovnik[x], slovnik[y] = slovnik[y], slovnik[x]
+    return slovnik
+    
 
 
+def desifruj(zprava, mezery=True):
+    if mezery:
+        f = open('ref')
+    else:
+        f = open('bref')
+    ref = pickle.load(f)
+    f.close()
+    slovnik = jakobsen(ocesat(zprava, mezery), ref)
     return '\n'.join([''.join(substituce(zprava, slovnik, ref.abeceda)),
                       ' '.join(ref.abeceda),
                       ' '.join([slovnik[c] for c in ref.abeceda])])
     return '\n'.join([''.join(substituce(zprava, slovnik, ref.abeceda)),
                       ' '.join(ref.abeceda),
                       ' '.join([slovnik[c] for c in ref.abeceda])])
-
-def desifruj(zprava, refs):
-    f = open(refs, 'rb')
-    ref = pickle.load(f)
-    f.close()
-    return jakobsen(zprava, ref)