河内之塔(汉诺塔)

算法分析:

假如有三个盘子在塔A上,需要移到塔C,按照一定的规则,需要借助塔B,移动的情形如下:


    河内之塔(汉诺塔)_第1张图片

  河内之塔(汉诺塔)_第2张图片

当有3个盘子时,共需要2^3-1步,则当有n个盘子时,需要2^n-1步。


算法实现:

";
        }else{
               Hanoi($n - 1,$x,$z,$y);//将n-1个盘子通过y从x移到z
            echo "move ".$n." from".$x." to ".$z."
"; Hanoi($n - 1,$y,$z,$x);//将n-1个盘子通过x从y移到z } } Hanoi(3,'x','y','z');


 

 

 

 

 

你可能感兴趣的:(算法,数据结构)