这篇文章给大家介绍使用PHP怎么实现一个汉诺塔算法,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
解决思路:
(1)以C盘为中介,从A杆将1至n-1号盘移至B杆;
(2)将A杆中剩下的第n号盘移至C杆;
(3)以A杆为中介;从B杆将1至n-1号盘移至C杆。
PHP代码实现:
/**
* 汉诺塔(3根柱子)
* @param unknown $n
* @param string $a // 当前位置
* @param string $b // 中转位置
* @param string $c // 目标位置
*/
function hanoi($n,$a='A',$b='B',$c='C'){
if( $n==1 ){
echo "{$a}->{$c} <br/>";
}else{
hanoi($n-1,$a,$c,$b); // 将最大盘上的盘子,借助C柱,全部移动到B柱上
echo "{$a}->{$c} <br/>"; // 将最大盘直接从A柱移到C柱
hanoi($n-1,$b,$a,$c); // 再将B柱上的盘子,借助A柱,全部移到C柱
}
}
//测试:
hanoi(3,$a='A',$b='B',$c='C')
运行结果:
A->C
A->B
C->B
A->C
B->A
B->C
A->C
关于使用PHP怎么实现一个汉诺塔算法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。