我想破译基于频率分析的文本,编程不是问题,但有一些数学困难。
(别担心,不是为了黑客攻击,我想试试十二宫杀手340密码,但问题只是关于破译http://zodiackillerciphers.com/wiki/images/7/7d/340-cipher-hi-resolution.jpg的一般问题,而不是密码的其他问题。)
我已经把它分解为5个简短的问题,都与成本函数有关,以表明我的努力,简短的回答是好的,任何帮助都感谢。我的问题是,成本函数中的值差异非常小。
关于频率分析的问题:
如果不感兴趣就跳过。我不想在这里详述,有几种方法可以使用。一个粗略的草图:
成本函数是什么样的?总的来说可以表示为:
w1*字母成本w2*配对成本w3*三重成本w4*单词成本
所有一切的总和是一:
w1 w2 w3 w4=1
关于成本函数的问题
现在,对于忽略单词的简单频率(w4=0),你可以只计算频率并取平方差(这就是我目前正在做的)。我想知道的是:w1=w2=w3或w1=27*w2=27*27*w3更合理吗?
它如何处理条件概率?
你如何整合单词的知识?只要数一数有多少真正的英语单词,可能是根据它们的长度来加权,或者有没有更聪明的方法?
依我看,你的问题来自过于笼统的概念。如果你不精确计算算法,就不可能计算出代价函数。我可以提出一种方法,来实现你概念的第二点:
尽管如此,第3点和“判断”非常笼统,但基于此,我可以给你一些答案:
关于成本函数的问题
成本函数
在我的例子中,AlgRoTHHM的成本是O(n)const(对于长单词,你可以考虑使用哈希表)“判断”。问题还在继续,因为许多问题取决于“法官”将如何解决。
我有一个关于获取加密文本文件内容并根据给定频率列表交换相应字母的快速问题。 例如,文本文件中的前几行是: XWJGFVCCVUJYPXQZGCVXQHXKAZGPPUHBZJYPUFMCZVYXQWJFZJCCMVMGHWZBZXQZKKBKUBKAZGJY 我创建了一个单个字符的数组列表,然后在哈希集中找到每个字母在文件中出现的次数。 在代码片段中,您可以看到字符串解密,它是英语中最常用的字母列
我在半年多前开始学习使用Python编程语言。正如Swaroop在本书中所说的那样,它很快就成为“我最喜欢的编程语言”。目前我的几乎所有编程工作都使用Python。从我的切身体会来说,Python最大的特点就是易懂、易用、高效率。我相信,如果你已经学完了本书,并且尝试着编写了一些程序后,你一定会有相同的感受。 Swaroop C. H.的这本书是我学习Python时的第一本教材。它简单明晰,可以在
沈洁元 目前是上海交通大学无线通信研究所的一名硕士研究生。他现在的研究领域主要在多载波CDMA系统的同步、信道估计、多用户检测等方面。Python语言(和Numeric库)是他目前在进行仿真和其他科研工作时使用的主要编程语言。在业余时间,他乐衷于各种FLOSS,如FreeBSD操作系统、PyGTK等等。电影、F1赛车和网球也是他的兴趣爱好。
以下代码片段的输出结果是什么? var a = 'I am a web developer!' var b = a.split('').reverse().join('') console.log(b) 结果 !repoleved bew a ma I 分析与思考 这题其实很简单,自己之前做过还是被坑到了。主要就一个点,split('')和split(' ')的区别,前者会将字符串中的字符全
我试图制作一个简单的基于文本的游戏,在这个游戏中,你在一个由“#”组成的网格周围移动“@”,并试图找到出口。我已经改变了代码,使我更容易使网格更大或更小,而无需添加或删除大量代码,它一直给我这样的输出: 我不知道这是怎么回事!只有一个“@”应该出现:(我只是python的新手,所以如果您有任何改进的建议,请不要犹豫,然后发布它们!提前感谢,
我正在开发一个小应用程序,例如,我得到了一些字符串“MRUGDQ”和一个移位值3。然后我将每个字母向左移动3,结果是“JORDAN”。例如,M将被J取代,R将被O取代,依此类推。 所以现在这就是我想使用的方法,但我想知道这是否有效,我可以改进我的解决方案吗? 我所做的假设: 我假设我的字符串将是大写A到Z字母或小写A到Z字母,因此ascii范围分别为65到90和97到122。 Pesudo代码 >