projekty
/
krypto.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
kosmeticke upravy
[krypto.git]
/
posuny.py
diff --git
a/posuny.py
b/posuny.py
index
7145900
..
4c05de1
100644
(file)
--- a/
posuny.py
+++ b/
posuny.py
@@
-1,3
+1,5
@@
+"""Modul pro praci s posuny v abecede."""
+
import referencni
from referencni import reference
from ocesavac import ocesat
import referencni
from referencni import reference
from ocesavac import ocesat
@@
-5,6
+7,8
@@
from ocesavac import ocesat
ABECEDA = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
def posun(char, pos=1):
ABECEDA = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
def posun(char, pos=1):
+ """Pokud dostane velke pismeno, vrati pismeno ktere je od nej vzdaleno
+ 'pos' mist v abecede. Jinak vrati puvodni pismeno."""
if 65 <= ord(char) < 91 - pos:
return chr(ord(char) + pos)
if ord(char) < 91 and ord(char) >= 91 - pos:
if 65 <= ord(char) < 91 - pos:
return chr(ord(char) + pos)
if ord(char) < 91 and ord(char) >= 91 - pos:
@@
-13,17
+17,22
@@
def posun(char, pos=1):
return char
def vsechny(zprava):
return char
def vsechny(zprava):
+ """Pro danou zpravu (libovolny text vsetne zvlastnich znaku) vrati
+ vsechny jeji posuny v abecede."""
posunuty = zprava.upper()
analyza = []
posunuty = zprava.upper()
analyza = []
- for
i
in range(26):
- posunuty =
map(posun, posunuty)
+ for
_
in range(26):
+ posunuty =
[posun(char) for char in posunuty]
analyza.append(''.join(posunuty))
analyza.append(''.join(posunuty))
- return
'\n'.join(analyza)
+ return
analyza
-def eu_vzdalenost(v1, v2):
- return sum([(x - y)**2 for (x, y) in zip(v1, v2)])
+def eu_vzdalenost(vec1, vec2):
+ """Euklidovska vzdalenost dvou vektoru."""
+ return sum([(x - y)**2 for (x, y) in zip(vec1, vec2)])
def nejlepsi(text):
def nejlepsi(text):
+ """Vrati to posunuti textu (neocesaneho), ktere ma frekvence znaku
+ nejblizsi cestine bez mezer."""
ref = referencni.nacti('bref')
freq = dict()
for char in ocesat(text, False):
ref = referencni.nacti('bref')
freq = dict()
for char in ocesat(text, False):
@@
-34,8
+43,8
@@
def nejlepsi(text):
posunuti = 0
for i in range(1, 26):
frekv = [frekv[25]] + frekv[:-1]
posunuti = 0
for i in range(1, 26):
frekv = [frekv[25]] + frekv[:-1]
-
v2
= eu_vzdalenost(frekv, ref.frekvence)
- if
v2
< vzdalenost:
- vzdalenost =
v2
+
nova_vzdalenost
= eu_vzdalenost(frekv, ref.frekvence)
+ if
nova_vzdalenost
< vzdalenost:
+ vzdalenost =
nova_vzdalenost
posunuti = i
return (posunuti, ''.join([posun(char, posunuti) for char in text.upper()]))
posunuti = i
return (posunuti, ''.join([posun(char, posunuti) for char in text.upper()]))