对于汉诺塔问题,假设盘子从上到下编号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)]
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)]
举一反三
- 如果定义解决汉诺塔问题的函数: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
- 下面哪个函数返回中出现substr的第一个字母的标号,如果S中没有substr则返回-1: A: S.rindex(substr,[start,[end]]) B: S.rfind(substr,[start,[end]]) C: S.index(substr,[start,[end]]) D: S.find(substr,[start,[end]])
- 对于汉诺塔问题,假设盘子从上到下编号1,2,3,...,现在要把“s柱子上的n个盘子移到e柱子,m柱子为辅助。如果用(a,b,c)表示将编号a的盘子从b柱子移到c柱子,那么下面哪个列表表示3个盘子的解决方法? A: [(1,s,e),(2,s,m),(1,e,m),(1,m,s),(2,m,e),(1,s,e)] B: [(1,s,e),(1,e,m),(3,s,e),(1,m,s),(2,m,e),(1,s,e)] C: [(1,s,e),(2,s,m),(1,e,m),(3,s,e),(1,m,s),(2,m,e),(1,s,e)] D: [(1,s,e),(2,s,m),(3,s,e),(1,e,m),(1,m,s),(2,m,e),(1,s,e)]
- 对于汉诺塔问题,假设盘子从上到下编号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)]