2 from referencni import reference
3 from ocesavac import ocesat
5 ABECEDA = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
7 def posun(char, pos=1):
8 if 65 <= ord(char) < 91 - pos:
9 return chr(ord(char) + pos)
10 if ord(char) < 91 and ord(char) >= 91 - pos:
11 return chr(ord(char) + pos - 26)
16 posunuty = zprava.upper()
19 posunuty = map(posun, posunuty)
20 analyza.append(''.join(posunuty))
23 def eu_vzdalenost(v1, v2):
24 return sum([(x - y)**2 for (x, y) in zip(v1, v2)])
27 ref = referencni.nacti('bref')
29 for char in ocesat(text, False):
30 freq[char] = freq.get(char, 0) + 1
31 celkem = sum(freq.values())
32 frekv = [float(freq.get(char, 0))/celkem for char in ABECEDA]
33 vzdalenost = eu_vzdalenost(frekv, ref.frekvence)
35 for i in range(1, 26):
36 frekv = [frekv[25]] + frekv[:-1]
37 v2 = eu_vzdalenost(frekv, ref.frekvence)
41 return (posunuti, ''.join([posun(char, posunuti) for char in text.upper()]))