This repository has been archived on 2026-03-24. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
TP-NSM/python/freq/main.py
2022-10-10 13:00:38 +02:00

82 lines
2.2 KiB
Python

txt = "NTCGPDOPANFLHJINTOOFITOVJHJCTMMHIHEMTCPFDWTSOFSHTOGFWTETTJJTBTOOFSZOVEOCHCVCHPJHOCGTOHNQMTOCNTCGPDCGFCSTQMFBTOFBGFSFBCTSHJCGTQMFHJCTYCXHCGFAHYTDDHAATSTJCBGFSFBCTSHJCGTBHQGTSCTYCCGHONTCGPDQSTOTSWTOCGTMTCCTSASTRVTJBZHJCGTQMFHJCTYCFJDOPPJTBFJOTFSBGAPSCGTQMFHJCTYCASPNFIHWTJBHQGTSCTYCEZBPNQFSHJICGTASTRVTJBZPATFBGMTCCTSFIFHJOCCGTLJPXJBPNNPJASTRVTJBZHJCGTVJDTSMZHJIMFJIVFIT"
freq_tab = ["E", "T", "A", "I", "N", "O", "S", "R", "L", "D", "H", "C", "U", "M", "F", "P", "Y", "G", "W", "V", "B",
"K", "X", "J", "Q", "Z"]
def freq_letter(txt):
dic = {}
for letter in txt:
if letter in dic:
dic[letter] += 1
else:
dic[letter] = 1
return dict(sorted(dic.items(), key=lambda item: item[1]))
def freq_m_letter(txt, nbr=2):
dic = {}
i = 0
while i < len(txt) - 1:
letter = txt[i:i + nbr]
if letter in dic:
dic[letter] += 1
else:
dic[letter] = 1
i += 1
return dict(sorted(filter(lambda x: x[1] > 2, dic.items()), key=lambda item: item[1]))
def trad(txt_, replace_):
sol = ""
for letter in txt_:
if letter in replace_:
sol += replace_[letter]
else:
sol += letter
return sol
if __name__ == '__main__':
replace = {"C": "t",
"G": "h",
"T": "e",
"H": "i",
"J": "n",
"S": "r",
"F": "a",
"Y": "x",
"B": "c",
"I": "g",
"M": "l",
"Q": "p",
"V": "u",
"A": "f",
"R": "q",
"Z": "y",
"D": "d",
"P": "o",
"O": "s",
"N": "m",
"L": "k",
"E": "b",
"W": "v",
"X": "w"
}
freq = freq_letter(txt)
print(freq)
for i in range(2, 10):
print("===")
freq_2 = freq_m_letter(txt, i)
print(freq_2)
print('{', end=" ")
for a in freq_2:
print(trad(a, replace), end=', ')
print('}')
sol = trad(txt, replace)
print('====')
print(sol)