+import referencni
+from referencni import reference
+from ocesavac import ocesat
+
+ABECEDA = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+
def posun(char):
if 65 <= ord(char) < 90:
return chr(ord(char) + 1)
for i in range(26):
posunuty = map(posun, posunuty)
analyza.append(''.join(posunuty))
- return '\n'.join(analyza)
\ No newline at end of file
+ return '\n'.join(analyza)
+
+def eu_vzdalenost(v1, v2):
+ return sum([(x - y)**2 for (x, y) in zip(v1, v2)])
+
+def nejlepsi_posun(text):
+ ref = referencni.nacti('bref')
+ text = ocesat(text, False)
+ freq = dict()
+ for char in text:
+ freq[char] = freq.get(char, 0) + 1
+ celkem = sum(freq.values())
+ frekv = [float(freq.get(char, 0))/celkem for char in ABECEDA]
+ vzdalenost = eu_vzdalenost(frekv, ref.frekvence)
+ posun = 0
+ for i in range(1, 26):
+ frekv = frekv[1:] + [frekv[0]]
+ v2 = eu_vzdalenost(frekv, ref.frekvence)
+ if v2 < vzdalenost:
+ vzdalenost = v2
+ posun = i
+ return posun