《人工智能课程设计报告》.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《人工智能课程设计报告》

人工智能课程设计报告 学院:数学与计算机科学学院 班级:2003级计算机6班 姓名:李少君 学号:s030300802 指导老师:林世平 王一蕾 【设计任务】 设计一个解码系统,能够破解给定的、用代入法编写的密文,还原出明文。通过设计初步掌握智能搜索算法中的盲目搜索和启发式搜索这两类基本方法,同时通过具体的问题体会搜索算法、数据结构、概率统计等知识的综合应用。 【设计环境及使用说明】 设计环境: 本程序主要是在Borland Jbuilder X 的环境下编写的,所以主要是利用了JAVA编程。因此在想看本程序的源代码的时候,需要在机子上安装下相关的程序,或者虚拟机。整个安装是不会占据太大的空间的。 关于设计的使用说明: 首先对于输入不作太多的限制,可以大写,可以用正常的文章的形式输入,标点符号也可以正常的输出。 点击可执行的文件(.exe)即可开始执行。在执行界面下,可以选择要进行实现的解密编码形式。 在输入密文的框中,按下组合键ctrl + v,将密文复制进去,直接输入也是可以的,结果和具体的一些信息的显示在另外的2个文本框中显示。 详细的请看下面的界面说明和结果分析。 【系统已实现的功能】 本系统基本上实现了对恺撒密码的盲目搜索和启发式搜索算法的实现,经过多次自己的测试均可以实现对段落的解密,速度也是比较快的,不需要太长的等待时间。由于恺撒的启发式函数本来要求实现2种的,但是由于本身对其他启发式函数的实现上存在一定的难度,所以我这里只有实现了一个启发式函数算法的实现。程序中的启发式搜索是通过统计密文中的字母的出现频率来逐一进行匹配的。具体的实现可以在我的程序的说明检查具体的算法和分析。 比较盲目搜索和启发式搜索,明显的启发式搜索比盲目式搜索的搜索效率是比较高的,您可以在具体的执行中加以验证。 对于代入法,也是通过尝试性的对不同的字母的出现频率的统计并且讨论其可能的搭配的形式,对应的替换表。主要由于代入法的难度比较大,所以在编程的过程中,还存在着很多不足的地方,所以我的代入法还有很多地方需要改进,比如在输入的密文的长度上需要比较长,而且尽量提供多的字母的频率统计的基础上,才可以进行得比较顺利。 在每个算法的实现,如果可以成功实现解密的,都会提示出密钥,完成的时间,方便您对不同算法的效率的比较。而对于某些密文,可能会因为在实现上,字母的信息不足,导致某些不能够顺利解密出来,这样的情况下可能需要您输入更多的密文信息下,才可以实现。这些方面的问题是本系统的一些不足,鉴于时间和个人的能力情况,所以不能够很好的完善本程序,对此造成的不便表示深切的歉意! 【算法思想及分析】 采用的算法: 凯撒的解密过程: ????????明文:M=C-K??(mod 26) 例如,凯撒密码是把字母表中的每个字母用该字母后面第三个字母进行代替。 密文:phhw?ph?diwhu?wkh?wrjd?sduwb 明文:meet?me?after?the?toga?party 既然字母表是循环的,因此Z后面的字母是A。能够通过列出所有可能性定义如下所示的变换: 明文:a?b?c?d?e?f?g?h?I?j?k?l?m?n?o?p?q?r?s?t?u?v?w?x?y?z 密文:d?e?f?g?h?I?j?k?l?m?n?o?p?q?r?s?t?u?v?w?x?y?z?a?b?c 如果为每一个字母分配一个数值,则该算法能表示如下。对每个明文字母平,用明文字母C替代: C=E(p)=(p+3)mod26 移位可以是任何量,因此通用的凯撒密码算法是: C=E(p)=(p+k)mod26 其中k在1到25的范围取值。解密算法是: p=D(C)=(C-k)mod26 。 如果已知密文用的是凯撒密码,则使用强行攻击密码分析容易取得结果:直接对所有25个密钥进行尝试。 基本上的我程序中的凯撒编码的盲目式搜索、启发式搜索,以及代入法编码的搜索的程序都放在一个大的类里面,分成了3个模块,他们都有相应的应用到一些程序,这些程序是做为子程序的调用而使用的。同时在程序中是最主要通过对程序Decode1 ( int key )进行调用,使用在3个子模块中,不同的使用来进行。 具体的可以看我的实现框架的简单示意! 设计的思想(启发式策略): 在启发式函数中,主要是统计字母的出现频率,通过信息安全的相关资料的介绍,在一般的英文中,26个字母的出现频率从高到低分别为: 英语字母的标准频率分布: e, t, a, o, i, n, s, h, r, d, l, c, u, m, w, f, g, y, p, b, v, k, j, x, q, z 因此可以通过这一信息,对输入的密文进行统计,从而假设出现频率高的密文字母

文档评论(0)

supaweiji + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档