finalizando trab 1

This commit is contained in:
2023-08-26 12:39:45 -03:00
parent 218aca1a6c
commit af82d8cd38
3 changed files with 47 additions and 46 deletions
+10 -14
View File
@@ -1,4 +1,5 @@
import sys
import cesar
if len(sys.argv) < 2:
print("Usage: python3 afreq.py [arquivo]")
@@ -38,10 +39,6 @@ frequencias.reverse()
caracteres = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
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():
@@ -55,26 +52,25 @@ def afreq(string):
freq_sorted = sorted(str_freq.items(), key=lambda item: item[1])
freq_sorted = [x[0] for x in freq_sorted]
freq_sorted.reverse()
print(freq_sorted[0], frequencias[0])
print(freq_sorted[1], frequencias[1])
most_freq = freq_sorted[0]
possiveis_chaves = []
for i, c in enumerate(frequencias):
if c not in freq_sorted:
continue
index_c = caracteres.index(c)
index_freq = caracteres.index(freq_sorted[i])
print(c, index_c, index_freq)
index_freq = caracteres.index(most_freq)
possiveis_chaves.append((index_freq - index_c) % 26) # (indice da freq da letra na str - indice da letra em PT) % ignorar letras maiusculas
print(freq_sorted[0], c + ' : ' + str(possiveis_chaves[-1]))
return possiveis_chaves
file_str = open(sys.argv[1], 'r').read()
possiveis_chaves = afreq(file_str)
possiveis_chaves = afreq(file_str)[:3]
print(possiveis_chaves)
print(possiveis_chaves)
for key in possiveis_chaves:
print(str(key) + ' : ' + cesar.cesar(file_str, -key))