汉诺塔问题演示 by figen

汉诺塔问题演示 by figen
几何画板及绘图内容加载中,请稍等……
2018-01-07 19:36
①本范例演示汉诺塔问题的解决过程与移动步数;②涉及的核心数学概念包括逻辑推理、递归算法、数列与步数计算;③作图要点提炼自构造摘要,使用了Sequence(数列)、button(按钮)、disc(圆盘对象)等GeoGebra命令与对象;④适合初中及以上学生学习算法思维与逻辑推理,也可用于数学竞赛培训。

GeoGebra 命令及参数

  1. 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]) → discA
  2. Sequence(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]) → discC
  3. Sequence(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]) → discB
  4. Sequence(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]) → discTA
  5. Sequence(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]) → discTB
  6. Sequence(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