- A+
领500g书库,关注公众号:程叫兽的宝藏 (长按可复制!)
热门下载区==>点此链接进入<<<
目录(点击切换)
本文节选自《计算之魂》电子版:
/第2章//逆向思考一一从递推到递归//步走到最下面一层时,又开始往口志了一直|回到最顶端。整个过程四是一个典型的完全二叉树(CompleteBinaryTree)遍历的过程:先遍历最左边的,再完成中间一步的移动,最后遍我是在历最右边的。阅读乔治“伽莫夫的《从一到无穷大》时初次了解这个问题的。书上i这个问题出越南河内的某个寺院。寺院了有三根银柱,其5一根银柱底向上从大到小摆放了64个金盘,僧侣之间流传着一个预言:如果按照上述规则将这64个盘子移动完毕,世界的末日就到了。由于河内的英语拼写是Hanoi,读音接近3F汉诺伊,这个问题也被称为汉诺塔问题。根据伽莫夫的讲解,完成这64个盘子的移动需要2一1次操作,移动第64个盘子大为为了移动最下男DB的第64个盘子,需要先把上面的63个盘子放到第64个盘子上面二,再把上的63个盘子移开,。也就是说,移动64个盘子操作的数量等于移动63个盘子操作数量的两倍再加1,我们将它写成这很容易推导宙归一于(FrangoisLucas,又译作这个问题的解题思路;S(64)=2S(63)+1F)还要长。最早提出这个问题的是法国并非完全不能通过归纳总结得出,可是实通过递推的思想写出且,王|大为它一列都完全不同,用了1顶向下递|后两
计算之魂内容
个算法是可以采3的思路写程序,只需要几行代码就够了。3从小到大递推的方式写出来的。算法2.1汉诺塔问题E务的时间(5800亿各数学家;(2.3)bS664六24-1。2%4-1是一个非常大的数字,大约是1.8x10?,即1800亿亿。如果河内的僧侣一秒移动一个盘子,完成这项但的历史(138亿生FE)比朗素瓦,卢卡斯朗素瓦,卢卡),而他所说的那个故事本身并不可考证。现这个过程的算法很难层谋套导致逻辑极为复杂,这和阶乘或者辈波那契数但是,如果我们采而是这个算法的伪代码。下2昌it(nn>O){//把于个盘子从source移到target,voidHancl(nsSouUrce,七arGet,//把凡1个盘子从source移到auxi1iary,中3auxiliary做吕auxiliarvyv)1{转3target做中转069/省计算之魂/5Hanoi(n-1,sourceauxiliarytarget):6MoveTop(source,target);//把source柱子上的盘子移到|target上7//打印三个柱子的状态,这个操作其实不需要8//只是为了能看清楚每一次移动的细节9PrintStatus()310//把呈-1个盘子从auxiliary移到t
计算之魂百度网盘
arget,用source做中转于于Hanoli(n-1,auxi1liary,target,,SoOurce):12】}了系直从代码中你可以看出,递归代码简单的原因是自己调用了自己。这件事在我们现实的世界里很难想象,但是在计算机的世界里很普遍。因此解决计算机的问题需要我们改变思路。汉诺塔问题还有一个等价问题,那就是中国的九连环问题。九连环由九个用金属丝制成的圆环、一个金属框架以及一个环柄构成。把玩时,按照一定的步骤反复操作,可将九个圆环依次套上框架,或者从框架上解开。拆解九连环的原理并不复杂,你要拆第九个,就要先把前八个顺序装到框架上,然后拆下第九个,再把前八个依次拆下,这和汉诺塔的原理完全一样,而操作的步又也是2一1=511次。如果一秒操作一次,不到10分钟能完成全部工作。我第一次拆解九连环是在高中,花了一些时间琢磨它的原理,就拆解开了。当时我的感叹是这个游戏用了九个环是非常合理的,如果用三五个,误打误撞也能解决,如果用19个,一年也未必能拆解完,就不会有人有兴趣玩了。2.1.3”难倒高斯的八皇后问题如果说汉诺塔问题和九连环问题还可以按照人们日常的思路总结规律来解决,那么下面一个问题就几乎不可能这么解决了,就需要完全采用递归的思路才可以。070
吴军计算之魂哪里可以买到
| 计算之魂免费阅读 | 计算之魂下载 |
| 吴军 计算之魂 | 计算之魂笔记 |
| 计算之魂 epub | 吴军 计算机之魂 |
综上:计算之魂mobi下载值得推荐阅读

