大佬教程收集整理的这篇文章主要介绍了javascript – Crockford的河内功能(来自“好的部分”),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > How does recursive algorithm work for Towers of Hanoi? 2个
目前我正在阅读道格拉斯·克罗克福德(Douglas Crockford)的书,而且河内功能的塔楼有点过头了.即使将日志记录到控制台,我也无法真正了解正在发生的事情.这是我添加的功能:
var hanoi = function (disc,src,aux,dst) {
console.log(disc);
console.log(src,dst);
if (disc > 0) {
hanoi(disc - 1,dst,auX);
console.log('Move disc ' + disc + ' from ' + src + ' to ' + dst);
hanoi(disc - 1,dst);
}
}
hanoi(3,'Src','Aux','Dst');
这导致以下结果:
而且我很早就输了.在结果的第6行,它怎么能从Src Aux回到Src Dst?
一旦它达到0,当该功能仅使用“disc-1”调用自身时,光盘的数量怎么能再次上升?
我在JSBin创建了一个修改过的例子,用一些(有些)更漂亮的方式用空格打印输出.只有“移动”实际上做了什么,其余的行只是递归调用,以解决较小的子问题,以便以后解决整个问题.
您可能还想查看此Java applet,它以图形方式显示算法的工作原理 – 这可能更容易理解.
以上是大佬教程为你收集整理的javascript – Crockford的河内功能(来自“好的部分”)全部内容,希望文章能够帮你解决javascript – Crockford的河内功能(来自“好的部分”)所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。