first
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
frequencias = {
|
||||
'A': 14.63,
|
||||
'B': 1.04,
|
||||
'C': 3.88,
|
||||
'D': 4.99,
|
||||
'E': 12.57,
|
||||
'F': 1.02,
|
||||
'G': 1.30,
|
||||
'H': 1.28,
|
||||
'I': 6.18,
|
||||
'J': 0.40,
|
||||
'K': 0.02,
|
||||
'L': 2.78,
|
||||
'M': 4.74,
|
||||
'N': 5.05,
|
||||
'O': 10.73,
|
||||
'P': 2.52,
|
||||
'Q': 1.20,
|
||||
'R': 6.53,
|
||||
'S': 7.81,
|
||||
'T': 4.34,
|
||||
'U': 4.63,
|
||||
'V': 1.67,
|
||||
'W': 0.01,
|
||||
'X': 0.21,
|
||||
'Y': 0.01,
|
||||
'Z': 0.47
|
||||
}
|
||||
|
||||
def afreq(string):
|
||||
# determinar a frequencia de cada caractere na string
|
||||
# comparar com a frequencia de cada caractere na lingua portuguesa
|
||||
# calcular a diferenca entre as frequencias
|
||||
|
||||
str_freq = {}
|
||||
for c in string:
|
||||
if not c.isalnum():
|
||||
continue
|
||||
|
||||
if c in str_freq:
|
||||
str_freq[c] += 1
|
||||
else:
|
||||
str_freq[c] = 1
|
||||
|
||||
for c in str_freq:
|
||||
if not c.isalnum():
|
||||
continue
|
||||
|
||||
str_freq[c] /= len(string)
|
||||
|
||||
freq_sorted = dict(sorted(str_freq.items(), key=lambda item: item[1]))
|
||||
|
||||
possiveis_chaves = []
|
||||
for c in frequencias:
|
||||
for k in freq_sorted:
|
||||
if abs(frequencias[c] - freq_sorted[k]) < 0.5:
|
||||
possiveis_chaves.append(ord(k) - ord(c))
|
||||
|
||||
return possiveis_chaves
|
||||
|
||||
Reference in New Issue
Block a user