汉诺塔问题演示 by figen
几何画板及绘图内容加载中,请稍等……
①本范例演示汉诺塔问题的解决过程与移动步数;②涉及的核心数学概念包括逻辑推理、递归算法、数列与步数计算;③作图要点提炼自构造摘要,使用了Sequence(数列)、button(按钮)、disc(圆盘对象)等GeoGebra命令与对象;④适合初中及以上学生学习算法思维与逻辑推理,也可用于数学竞赛培训。
GeoGebra 命令及参数
Sequence(Polygon[(2 - (2 * Element[seqA, i] / num), (4 * (Length[seqA] - i) / num)), (2 + (2 * Element[seqA, i] / num), (4 * (Length[seqA] - i) / num)), (2 + (2 * Element[seqA, i] / num), (4 * (Length[seqA] - i + 1) / num)), (2 - (2 * Element[seqA, i] / num), (4 * (Length[seqA] - i + 1) / num))], i, 1, Length[seqA]) → discASequence(Polygon[(12 - (2 * Element[seqC, i] / num), (4 * (Length[seqC] - i) / num)), (12 + (2 * Element[seqC, i] / num), (4 * (Length[seqC] - i) / num)), (12 + (2 * Element[seqC, i] / num), (4 * (Length[seqC] - i + 1) / num)), (12 - (2 * Element[seqC, i] / num), (4 * (Length[seqC] - i + 1) / num))], i, 1, Length[seqC]) → discCSequence(Polygon[(7 - (2 * Element[seqB, i] / num), (4 * (Length[seqB] - i) / num)), (7 + (2 * Element[seqB, i] / num), (4 * (Length[seqB] - i) / num)), (7 + (2 * Element[seqB, i] / num), (4 * (Length[seqB] - i + 1) / num)), (7 - (2 * Element[seqB, i] / num), (4 * (Length[seqB] - i + 1) / num))], i, 1, Length[seqB]) → discBSequence(Polygon[(2 - (2 * Element[tmpA, i] / num), 5), (2 + (2 * Element[tmpA, i] / num), 5), (2 + (2 * Element[tmpA, i] / num), 5 + 4 / num), (2 - (2 * Element[tmpA, i] / num), 5 + 4 / num)], i, 1, Length[tmpA]) → discTASequence(Polygon[(7 - (2 * Element[tmpB, i] / num), 5), (7 + (2 * Element[tmpB, i] / num), 5), (7 + (2 * Element[tmpB, i] / num), 5 + 4 / num), (7 - (2 * Element[tmpB, i] / num), 5 + 4 / num)], i, 1, Length[tmpB]) → discTBSequence(Polygon[(12 - (2 * Element[tmpC, i] / num), 5), (12 + (2 * Element[tmpC, i] / num), 5), (12 + (2 * Element[tmpC, i] / num), 5 + 4 / num), (12 - (2 * Element[tmpC, i] / num), 5 + 4 / num)], i, 1, Length[tmpC]) → discTC