- A+
领500g书库,关注公众号:程叫兽的宝藏 (长按可复制!)
热门下载区==>点此链接进入<<<
目录(点击切换)
本文节选自《计算之魂》电子版:
/第2章/逆向思考一一从递推到递归//答不上来的人无一例外地试图通过从z=1,2,3这几个特例,推导出一般性的律。他们会把它当成一个简单的排列组合问题,试图寻找台阶数量上和走法数量Fom)之间的递推公式。然后代入=20,就能求出登到20级台阶的走法数量了。遗憾的是,沿着这样的思路想问题的人几乎没有成功的,因为这个以二为变量的国数虽然存在,但形式如下Ti人rm-着71河|(2.1)这个公式大家是否觉得很容易用数学归纳法总结出来”显然不容易。但是,如果我们倒过来想这个问题,就变得容易了。当然,其中的技巧还是递归。我们假定到20有所20)种不同的路径,到20这个数字,前一步只有两种可能的情况,即从18直接跳到20〈(18+2=20),或者从19到20。由于这两种情况完全没有重合,因此到20的走法数量,其实就是到18的走法数量,加上到19的走法数量,即FC20F=FUI8)HFU9,与此类似,FI9FFU7)HRUL8)。这些就是递归公式,它的普遍形式是FUD=FUo-D+FUoz-2)《3)最后还需要有结束条件,F(D)
吴军 计算之魂电子版
只有一种可能性,即FU)=1,类似地,F2)有两种可能性,即K2)=2。知道了FU)和R2),就可以知道K3),然后再倒推回去,一到F20)。上面这个序列其实就是著名的辈波那契数列,其中所20)=10946,就人类的想象力来讲,这并不是一个小数字,几乎无法靠穷举法把所有情况想清楚。这个问题有很多等价的问题,它们的解都是裴波那契数列。一方面,在计算视科学中,等价的问题扮演着很重要的角色,解决了其中的一个,就解决了一批。在后面介绍卡特兰数时,我们还会谈到等价问题。另一方面,如果我们发现某个问题等价于一个长期以来都没有解决的问题时,最好把这个问题放一放。事实上所有NP完全(NP-complete)问题都是等价的,我们不要看到其中的一个表述似乎很简单,就试攻去解决它们。汝吕同065/计算之怕//至于如何从辈波那契数列的递归公式得到式〈2.1)的解析解,大家可以参阅本章的附录一。2.1.2”汉诺塔和九连环:用递归表述的问题在计算机科学中,更多的复杂问题不是上述计算数值的问题,而是要通过一系列操作完成一个过程,比如对一个序列进
计算之魂mobi
行排序、分析自然语言、规划行驶路径、实现两类集合之间的匹配等。这些问题常常要用到递归的思想。这里我们先从一个相对简单的问题入手一一汉诺塔问题(也称为项塔问题),看看一个复杂的过程如何通过递归的方式一步步完成。例题23”汉诺塔问题食高秽宙站有三根柱子,A、了和T。A柱上探着64个盘子(更有普遍意义的是假定有六个盘子),小的放在大的上面(上面的最小,下面的最大)。接下来要按照下列规则将所有姐子从A柱移到了柱:1每次只能移动一个盘子;2任何时候小盘子不能放在大瘟子的下面;3.代柱可以用于临时摆放奶子,但盘子的次序也不能违反第2条规则。最后的问题是,如何将这人4个盘子从A柱移到B柱。这个问题比前两个都抽象一些,我们不妨先看N=1,2,3这几个简单的情况。N=1的时候比较简单,直接将唯一的那个盘子从A柱移到B柱即可,记作Al一Bl。N=2的时候也比较直观,我们先将A柱上的小盘子移到临时存放盘子的T柱上,再将A柱上下面那个大盘子(此时它在最上面)移到B柱上,最后将T柱上的那个小盘子移到B柱上,图2.1显示了这个过程。066
计算之魂出版时间
| 计算之魂epub下载 | 计算之魂电子书下载 |
| 吴军计算之魂读后感 | 计算之魂书 |
| 计算之魂吴军豆瓣 | 计算之魂人和计算机对信息编码的差异 |
综上:计算之魂摘抄值得推荐阅读

