Discuss / Python / 三步走的程序里 a,b,c 移动不是太清楚

三步走的程序里 a,b,c 移动不是太清楚

Topic source
    else:
        move(n-1, a, c, b)
        move(1, a, b, c)
        move(n-1, b, a, c)

原理基本能懂,但是对于分三步走,但是对于abc的移动位置在程序里体现不是很懂。 个人是通过n=2 代入的原则,已及把n-1看成整体(实际上还是n=2代入来理解) 有没有能解释的比较通俗一点的说法???

你最终的目的是把所有盘子移到c柱上,那应该前面的年n-1个盘子只能放在b柱上啊。这样c柱是空的,你才能把最大的盘子放上。所以第一步就是从a柱移动n-1个盘子到b柱,显然只能借助c柱,故而是move(n-1, a, c, b)。第二步很显然将最大盘子从a柱移到c柱。第三步,这个时候n-1个盘子已经被你yi dao2移到b柱了,剩下的就是把他们移到c柱。所以是move(n-1, b, a, c)。


  • 1

Reply