汉诺塔(hanoitower) 间题形式化描述为hanoi tower (n, from, to, temp),其中from为起始柱子,to为目标柱子,tem为临时柱子,其含义是将柱子A上的n个盘子借助于柱子C搬动到柱子D上。若要求将柱子A上的n-1个盘子借助柱子C搬到柱子B上,则该问题正确的形式化描述为( )
A: Hanoitower (n-1, from, temp, to)
B: Hanoitower(n-1,f to,f rom, temp, )
C: Hanoitower(n-1, temp, to , from)
D: Hanoi tower (n-1, to, temp, from)
A: Hanoitower (n-1, from, temp, to)
B: Hanoitower(n-1,f to,f rom, temp, )
C: Hanoitower(n-1, temp, to , from)
D: Hanoi tower (n-1, to, temp, from)
举一反三
- 如果定义解决汉诺塔问题的函数:hanoi::Int-Int-Int-Int-[(Int,Int,Int)] hanoinstartmidend=...hanoi n start mid end 表示将n(第一个参数)个盘子从start(第二个参数)移到end(第四个参数)上,mid(第三个参数)是辅助柱子,那么在定义中如何表示将n-1个盘子从mid移到end上,start作为辅助柱子? A: hanoi n-1 mid end start B: hanoi (n-1) mid start end C: hanoi (n-1) start end mid D: hanoi (n-1) mid end start
- 汉诺塔(hanoi塔)问题可以描述为以下递归形式 hanoi(n个盘子, A→B,缓冲柱为C) { if (n==1) 直接从A移到B else { hanoi(n-1个盘子, A→C, 缓冲柱为B) 移动n号盘子:A→B hanoi(n-1个盘子, C→B, 缓冲柱为A) } } 9bd153b5af31717f1112b419266aaa8c.jpg
- 对于汉诺塔问题,假设盘子从上到下编号1,2,3,...,现在要把“start柱子上的n个盘子移到end柱子,mid柱子为辅助。如果用(a,b,c)表示将编号a的盘子从b柱子移到c柱子,那么下面哪个列表表示两个盘子的解决方法? A: [(1,start,mid),(1,mid,end),(2,start,end)] B: [(2,start,end),(1,mid,end),(1,start,mid)] C: [(1,start,end),(2,start,end),(1,mid,end)] D: [(1,start,mid),(2,start,end),(1,mid,end)]
- 对于汉诺塔问题,假设盘子从上到下编号1,2,3,...,现在要把1号柱子上的n个盘子移到3号柱子,2号柱子为辅助。如果用(a,b,c)表示将编号a的盘子从b柱子移到c柱子,那么下面哪个列表表示两个盘子的解决方法? A: [(1,2,2),(2,1,3),(1,2,3)] B: [(1,1,2),(2,1,3),(1,3,3)] C: [(1,1,2),(1,2,3),(1,2,3)] D: [(1,1,2),(2,1,3),(1,2,3)]
- 对于汉诺塔问题,假设盘子从上到下编号1,2,3,...,现在要把1号柱子上的n个盘子移到3号柱子,2号柱子为辅助。如果用(a,b,c)表示将编号a的盘子从b柱子移到c柱子,那么下面哪个列表表示两个盘子的解决方法? A: [(1,2,2),(2,1,3),(1,2,3)] B: [(1,1,2),(2,1,3),(1,3,3)] C: [(1,1,2),(1,2,3),(1,2,3)] D: [(1,1,2),(2,1,3),(1,2,3)]