- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
算法与数学
牧羊人的谜语:一个牧羊人想过河,他带着一只羊、一只狼和卷心菜,一次只能有两个先过河,(比如:牧羊人和羊或者牧羊人和卷心菜)不能让羊吃了卷心菜也不能让狼吃了羊,请问,他要怎样过河? 算法(Algorithm)是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。 穷举法(枚举法) 穷举法是一种针对于密码的破译方法。这种方法很像数学上的“完全归纳法”并在密码破译方面得到了广泛的应用。简单来说就是将密码进行逐个推算直到找出真正的密码为止。 递归法 一个函数、过程、概念或数学结构,如果在其定义或说明内部直接或间接地出现有其本身的引用,或者是为了描述问题的某一状态,必须用到它的上一状态,而描述上一状态,又必须用到它的上一状态……这种用自己来定义自己的方法,称之为递归或者是递归定义。 递归法 回溯法 回溯法(探索与回溯法)是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。 回溯法 模拟法 模拟法和类比法很近似。它是在实验室里先设计出于某被研究现象或过程(即原型)相似的模型,然后通过模型,间接的研究原型规律性的实验方法。 模拟法 日本一位中学生发现一个奇妙的“定理”,请角谷教授证实,而教授无能为力,于是产生角谷猜想。猜想的内容是:任给一个自然数,若为偶数除以2,若为奇数则乘3加1,得到一个新的自然数后按照上面的法则继续演算,若干次后得到的结果必然为1。 分治法 分治法字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。 连连看(1) 连通算法: 1.直连型 2.一折型 3.两折型 贪心法 贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。 贪心法 [背包问题]有一个背包,背包容量是M=150。有7个物品,物品不可以分割成任意大小。要求尽可能让装入背包中的物品总价值最大,但不能超过总容量。 物品 A B C D E F G 重量 35 30 60 50 40 10 25 价值 10 40 30 50 35 40 30 ——数学师范071 赵志勇 1.穷举法(枚举法) 2.递归法 3.回溯法 4.模拟法 5.分治法 6.贪心法 返回 斐波那契数列 汉诺塔 阶乘 阶乘 n!=1*2*3*…(n-1)*n n!= n*(n-1)!,n0; 1, n=0。 { 斐波那契数列0,1,1,2,3,5,8,13,21,34,55,…,从第三项开始,每一项是前两项的和 汉诺塔的由来 汉诺塔的原理 汉诺塔的实现 源代码 汉诺塔 的由来 河内之塔(Towers of Hanoi)是法国人M.Claus(Lucas)于1883年从泰国带至法国的,河内为越战时北越的首都,即现在的胡志明市;1883年法国数学家 Edouard Lucas曾提及这个故事,据说创世纪时Benares有一座波罗教塔,是由三支钻石棒(Pag)所支撑,开始时神在第一根棒上放置64个由上至下依由小至大排列的金盘(Disc),并命令僧侣将所有的金盘从第一根石棒移至第三根石棒,且搬运过程中遵守大盘子在小盘子之下的原则,若每日仅搬一个盘子,则当盘子全数搬运完毕之时,此塔将毁损,而也就是世界末日来临之时。 汉诺塔 的原理 n阶Hanio塔问题 假设有3个分别命名为X,Y和Z的塔座,在塔座X上插有n个直径大小各不相同,依小到大编号为1,2,...,n的圆盘。现要求将X轴上的n个圆盘移至塔座Z上并仍按同样顺序叠排,圆盘移动时必须遵循下列规则: (1)每次只能移动一个圆盘; (2)圆盘可以插在X、Y和Z中的任一塔座上; (3)任何时刻都不能将一个较大的圆盘压在较小的圆盘之上。 汉诺塔 的实现 当n=1时,问题比较简单,只要将编号为1的圆盘从塔座X直接移至塔座Z上即可;当n1时,需利用塔座Y作辅助塔座,若能设法将压在编号为n的圆盘之上的n-1个圆盘从塔座X移至塔座Y上,则可先将编号为n的圆盘从塔座X移至塔座Z上,然后再将塔座Y上的n-1个转盘移至塔座Z上。而如何将n-1个圆盘从一个塔座移至另一个塔座的问题是一个和原问题具有相同特征属性的问题,只是问题的规模小1,因此可以用同样的方法求解。 原理 Diagram 2 Diagram 3 Diagram 2 Diagram
文档评论(0)