设计一个算法求解 Hanoi 问题: 有三根柱子[tex=2.786x1.214]jCrpwkxG1Z6ykeszIXcUxw==[/tex], 有[tex=0.643x0.786]/he/ol8BkDuTTL9yMPtH4Q==[/tex]个半径不同的中间有孔的圆盘,这[tex=0.643x0.786]/he/ol8BkDuTTL9yMPtH4Q==[/tex]个圆盘在柱子[tex=0.786x1.0]b4HkKtHXeHofHX/gJc8Agg==[/tex]上,从上往下半径依次增大。要求把所有圆盘移至目标盘[tex=0.714x1.0]YiLkHgl7MlxE+QjUplQUKA==[/tex]上, 可将柱子[tex=0.786x1.0]sHo1pKm+gjxjcUAJjHrarQ==[/tex]作为辅助柱,移动圆盘时必须服从以下规则:(1) 每次只可搬动一个圆盘。(2) 任何柱子上都不允许大圆盘在小圆盘的上面。并分析算法的时间复杂度。
举一反三
- 设计一个算汰求解[tex=2.857x1.0]Zes1jU4ruiOEyJIvBU8Wdg==[/tex]问题 : 有三根柱子[tex=0.714x1.0]AiT6fhT2pvop+UvpD2oClg==[/tex][tex=3.714x1.286]jCeyqxNw3rUQvLZ/7DFe0Q==[/tex] 有 [tex=0.643x0.786]/he/ol8BkDuTTL9yMPtH4Q==[/tex]个半径不同的中间有孔的圆盘,这[tex=0.643x0.786]/he/ol8BkDuTTL9yMPtH4Q==[/tex]个圆盘在柱子[tex=0.786x1.0]b4HkKtHXeHofHX/gJc8Agg==[/tex] 上,从上往下半程依次增大。要求把所有圆盘移至目标盘 [tex=0.714x1.0]YiLkHgl7MlxE+QjUplQUKA==[/tex]上, 可将柱子[tex=0.786x1.0]ri6gmnf1+J9dGqG5/1sV6A==[/tex]作为辅助柱,移动圆盘时必须服从以下规则[tex=1.286x1.357]VAHhaW1te0xvoqDVN54/dg==[/tex]每次只可搬动一个圆盘。[tex=1.857x1.286]q6stUxRkyneRT9AdCNOTIw==[/tex]任何柱子上都不允许大圆盘在小圆盘的上面。 并分析算法的时间复杂度。
- [[tex=2.857x1.0]Zes1jU4ruiOEyJIvBU8Wdg==[/tex]塔问题] [tex=0.643x0.786]/he/ol8BkDuTTL9yMPtH4Q==[/tex]阶[tex=2.857x1.0]Zes1jU4ruiOEyJIvBU8Wdg==[/tex]塔问题是这样的: 假设有三个分别命名为[tex=0.857x1.0]N7iCrOsS+NNEUUlnsYCi1g==[/tex],[tex=0.643x1.0]O+viFNA0oHTwnBtQyi80Zw==[/tex] 和[tex=0.714x1.0]A/RYZa+bKKYYpjzBS/r5ng==[/tex]的塔座,在塔座[tex=0.786x1.0]yFLhNWXdy+71qunyuRVv1A==[/tex]上插有[tex=0.643x0.786]/he/ol8BkDuTTL9yMPtH4Q==[/tex]个直径大小各不相同、依小到大编号为 1,2,[tex=1.286x0.786]lRSLJav0cvc1uYdx/9plcw==[/tex],[tex=0.643x0.786]35ReWWGs/YPu3n9y5K5w7g==[/tex]的圆盘, 如下图所示。现要求将塔座[tex=0.857x1.0]N7iCrOsS+NNEUUlnsYCi1g==[/tex]上的[tex=0.643x0.786]/he/ol8BkDuTTL9yMPtH4Q==[/tex]个圆盘移至塔座 [tex=0.714x1.0]A/RYZa+bKKYYpjzBS/r5ng==[/tex]上并仍按同样顺序叠排,圆盘移 动时必须遵守下列规则:(1) 每次只能移动一个圆盘,(2) 圆盘可以插在[tex=0.857x1.0]N7iCrOsS+NNEUUlnsYCi1g==[/tex],[tex=0.643x1.0]O+viFNA0oHTwnBtQyi80Zw==[/tex] 和[tex=0.714x1.0]A/RYZa+bKKYYpjzBS/r5ng==[/tex]中任塔座上,(3)任何时刻都不能将一个较大的圆盘压在较小的圆盘之上。请写一算法, 打印出正确的操作步骤。要求先用递归函数上机实现一般[tex=2.857x1.0]Zes1jU4ruiOEyJIvBU8Wdg==[/tex]塔问题,伏后改用非逆归函数解同样的问题,并与递归函数进行比较。[img=402x132]179f628d531860b.png[/img]
- 半径为 [tex=0.786x1.0]AOSTmhvIsOwsdZlGoks7dg==[/tex] 的圆盘,带有正电荷,其电荷面密度 [tex=3.286x1.214]2I8qHFqKPLD3GqVBBMscjA==[/tex] 是常数, [tex=0.5x0.786]U5O66aolbR1y5vuKrQbXNA==[/tex] 为圆盘上一点到圆心的距离,圆盘放在一均匀磁场 [tex=0.786x1.0]sHo1pKm+gjxjcUAJjHrarQ==[/tex] 中,其法线方向与 [tex=0.786x1.0]sHo1pKm+gjxjcUAJjHrarQ==[/tex] 垂直, 当圆盘以角速度 [tex=0.643x0.786]B0PC2AKEHpSnHKwlNNx+FA==[/tex] 绕过圆心 [tex=0.786x1.0]5SeCOJOzMwSNbX8MGx2Qsg==[/tex] 点,且垂直于圆盘平面的轴作逆时针旋转时,求圆盘所受磁力矩的大小和方向。
- 当 [tex=0.643x0.786]/he/ol8BkDuTTL9yMPtH4Q==[/tex] 阶矩阵 [tex=0.786x1.0]b4HkKtHXeHofHX/gJc8Agg==[/tex] 适合条件 ( ) 时,它必相似于对角阵. 未知类型:{'options': ['[tex=0.786x1.0]b4HkKtHXeHofHX/gJc8Agg==[/tex]\xa0有\xa0[tex=0.643x0.786]/he/ol8BkDuTTL9yMPtH4Q==[/tex]\xa0个不同的特征向富', '[tex=0.786x1.0]b4HkKtHXeHofHX/gJc8Agg==[/tex]\xa0是上二角矩阵', '[tex=0.786x1.0]b4HkKtHXeHofHX/gJc8Agg==[/tex]\xa0有\xa0[tex=0.643x0.786]/he/ol8BkDuTTL9yMPtH4Q==[/tex]\xa0个不同的特征值', '[tex=0.786x1.0]b4HkKtHXeHofHX/gJc8Agg==[/tex]\xa0是可逆矩阵'], 'type': 102}
- 求证: 若 [tex=0.643x0.786]/he/ol8BkDuTTL9yMPtH4Q==[/tex] 阶矩阵 [tex=0.786x1.0]b4HkKtHXeHofHX/gJc8Agg==[/tex] 有 [tex=0.643x0.786]/he/ol8BkDuTTL9yMPtH4Q==[/tex]个互不相同的特征值, 则 [tex=0.786x1.0]b4HkKtHXeHofHX/gJc8Agg==[/tex] 的特征多项式 和极小多项式相等.