25讲,汉诺塔,hanoi(n-1,x,z,y) ,y,z换位置是什么意思
def hanoi(n,x,y):if n==1:
print(x,'-->',z)
else:
hanoi(n-1,x,z,y) #将前n-1个盘子从x上移动到Y上
print(x,'-->',z)
hanoi(n-1,y,x,z) 你真的是打死也不知道要把代码放进代码块里。
我不知道这是什么意思,但我知道这个程序一定出错
def hanoi(n,x,y):这里函数只接受三个参数hanoi(n-1,x,z,y)提供四个参数,一定出错 本帖最后由 猪猪虾 于 2020-3-22 15:58 编辑
永恒的蓝色梦想 发表于 2020-3-22 15:46
你真的是打死也不知道要把代码放进代码块里。
我不知道这是什么意思,但我知道这个程序一定出错
def hanoi(n,x,y,z):
if n==1:
print(x,'-->',z)
else:
hanoi(n-1,x,z,y) #将前n-1个盘子从x上移动到Y上
print(x,'-->',z)
hanoi(n-1,y,x,z) 猪猪虾 发表于 2020-3-22 15:56
啊,这个是老师上课说的内容,我只是抄了一遍,不知道什么意思,四个参数老师运行是对的 猪猪虾 发表于 2020-3-22 15:57
啊,这个是老师上课说的内容,我只是抄了一遍,不知道什么意思,四个参数老师运行是对的
是粘贴的问题,我以后注意,但是老师确实是用了四个参数,我没太懂参数交换位置的意思 猪猪虾 发表于 2020-3-22 15:59
是粘贴的问题,我以后注意,但是老师确实是用了四个参数,我没太懂参数交换位置的意思
发题目 永恒的蓝色梦想 发表于 2020-3-22 16:09
发题目
题目是汉诺塔,三根柱子,将一根子上的圆盘全部移动到另一根柱子上,一次只能移动一个圆盘,并且小的圆盘必须在大的圆盘上方 猪猪虾 发表于 2020-3-22 16:13
题目是汉诺塔,三根柱子,将一根子上的圆盘全部移动到另一根柱子上,一次只能移动一个圆盘,并且小的圆盘 ...
函数输入又是什么呢? hanoi(n-1,x,z,y)
表示递归调用将前n-1个盘子从x上移动到Y上,z放在中间,表示借用z这个柱子。
如果明白我说的意思,{:5_109:}给个最佳答案呗。{:5_92:} 永恒的蓝色梦想 发表于 2020-3-22 16:27
函数输入又是什么呢?
输入,n是圆盘的个数,x,y,z表示从左到右的的三根柱子 coolsummer2080 发表于 2020-3-22 20:53
hanoi(n-1,x,z,y)
表示递归调用将前n-1个盘子从x上移动到Y上,z放在中间,表示借用z这个柱子。
如果明白 ...
您可以换个说法吗,我知道要借用z,可是为什么这样换参数位置 这里的第2个参数就是待移动盘子下的柱子,第3个参数就是借用的柱子,第4个参数就是目标柱子。 你可以试着想一下 n=2的时候程序流程而且要改一下代码(n,'1','2','3') 调用参数时用(2,‘1’,‘2’,‘3’)你就好想了 甲鱼的课都用的XYZ 确实具有一定的迷惑性 chai016 发表于 2020-3-22 21:49
你可以试着想一下 n=2的时候程序流程而且要改一下代码(n,'1','2','3') 调用参数时用(2,‘1’,‘2 ...
蟹蟹 感谢感谢。{:5_109:}最近鱼贝好紧张! 位置变化的意思,我认为是为了实参的打印显示问题,其实每调用一次hanoi(),走的步骤都是第二个位置的参数走到第四个位置的,你把他想象成位置,x,y,z只是用来表示1号柱子,2号柱子,3号柱子。
页:
[1]