同步操作将从 编程语言算法集/Python 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
# Frequency Finder# frequency taken from http://en.wikipedia.org/wiki/Letter_frequencyenglishLetterFreq = {"E": 12.70,"T": 9.06,"A": 8.17,"O": 7.51,"I": 6.97,"N": 6.75,"S": 6.33,"H": 6.09,"R": 5.99,"D": 4.25,"L": 4.03,"C": 2.78,"U": 2.76,"M": 2.41,"W": 2.36,"F": 2.23,"G": 2.02,"Y": 1.97,"P": 1.93,"B": 1.29,"V": 0.98,"K": 0.77,"J": 0.15,"X": 0.15,"Q": 0.10,"Z": 0.07,}ETAOIN = "ETAOINSHRDLCUMWFGYPBVKJXQZ"LETTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"def getLetterCount(message):letterCount = {"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 message.upper():if letter in LETTERS:letterCount[letter] += 1return letterCountdef getItemAtIndexZero(x):return x[0]def getFrequencyOrder(message):letterToFreq = getLetterCount(message)freqToLetter = {}for letter in LETTERS:if letterToFreq[letter] not in freqToLetter:freqToLetter[letterToFreq[letter]] = [letter]else:freqToLetter[letterToFreq[letter]].append(letter)for freq in freqToLetter:freqToLetter[freq].sort(key=ETAOIN.find, reverse=True)freqToLetter[freq] = "".join(freqToLetter[freq])freqPairs = list(freqToLetter.items())freqPairs.sort(key=getItemAtIndexZero, reverse=True)freqOrder = []for freqPair in freqPairs:freqOrder.append(freqPair[1])return "".join(freqOrder)def englishFreqMatchScore(message):""">>> englishFreqMatchScore('Hello World')1"""freqOrder = getFrequencyOrder(message)matchScore = 0for commonLetter in ETAOIN[:6]:if commonLetter in freqOrder[:6]:matchScore += 1for uncommonLetter in ETAOIN[-6:]:if uncommonLetter in freqOrder[-6:]:matchScore += 1return matchScoreif __name__ == "__main__":import doctestdoctest.testmod()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。