파이어 톤을 사용하여 Vigenère 암호를 해독 할 수 있도록 노력하고 있습니다. 프로그래밍에 익숙하지는 않지만 한 문자의 주파수를 분석하는 알고리즘을 만들었습니다. 이것은 내가 지금까지 가지고있는 것입니다 :주파수 분석을 위해 파이썬 사용하기
Ciphertext = str(input("What is the cipher text?"))
Letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
def LetterFrequency():
LetterFrequency = {'A': 0, 'B': 0, 'C': 0, 'D': 0, 'E': 0, 'F': 0, 'G': 0, 'H': 0, 'I': 0, 'J': 0, 'K': 0, 'L': 0, 'M': 0, 'N': 0, 'O': 0, 'P': 0, 'Q': 0, 'R': 0, 'S': 0, 'T': 0, 'U': 0, 'V': 0, 'W': 0, 'X': 0, 'Y': 0, 'Z': 0}
for letter in Ciphertext.upper():
if letter in Letters:
LetterFrequency[letter]+=1
return LetterFrequency
print (LetterFrequency())
그러나 가장 자주 나오는 문자부터 내림차순으로 대답을 인쇄 할 수있는 방법이 있습니까? 대답은 내가하는 일에 관계없이 무작위 순서로 표시됩니다.
또한 특정 문자를 추출하여 주파수 분석을 수행하기 위해 큰 텍스트 블록을 작성하는 방법을 알고있는 사람이 있습니까? 내가 분석 할 함께 텍스트 "THISISARATHERBORINGEXAMPLE"에서 모든 세 번째 글자를 넣어 원하는 경우 예를 들어 그래서 내가 얻을 필요가있다 :
일반적으로T H I
S I S
A R A
T H E
R B O
R I N
G E X
A M P
L E
I 소요 메모장 또는 Excel 중 하나로 손으로이 작업을 수행 할 것 나이. 파이썬에서이 문제를 해결할 수있는 방법이 있습니까? 사전에
감사합니다, 당신은 Counter
사용할 수 내림차순의 경우
토니
감사합니다! 그게 효과가있는 것처럼 보이지만 카운터에 공백을 넣을 수는 없나요? –
'카운터 (문자가 x 일 경우 편지! =) ' – blacksite
@ 토니 장, 답변을 업데이트하십시오! – coder