• 2022-05-31
    设计一个算法求解 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) 任何柱子上都不允许大圆盘在小圆盘的上面。并分析算法的时间复杂度。
  • 解: 求解 Hanoi 问题的思路为:当[tex=1.929x1.0]iy49FZmj3Bn8sRaLZpfrEw==[/tex]时,搬动一次即可;当[tex=2.5x1.071]QC0pzsvFJa50eS4VA6H6Vg==[/tex]时,分三步进行:(1) 将[tex=1.929x1.143]qMmLG3OT6I+UYFeehawKuA==[/tex]个页盘(除最大的圆盘外)从柱子[tex=0.786x1.0]b4HkKtHXeHofHX/gJc8Agg==[/tex]移到柱子 [tex=0.786x1.0]sHo1pKm+gjxjcUAJjHrarQ==[/tex]。(2)将最大的圆盘从柱子[tex=0.786x1.0]b4HkKtHXeHofHX/gJc8Agg==[/tex]移动到柱子[tex=0.714x1.0]YiLkHgl7MlxE+QjUplQUKA==[/tex]。(3) 将柱子[tex=0.786x1.0]sHo1pKm+gjxjcUAJjHrarQ==[/tex]上的[tex=1.929x1.143]qMmLG3OT6I+UYFeehawKuA==[/tex]个圆盘从柱子[tex=0.786x1.0]sHo1pKm+gjxjcUAJjHrarQ==[/tex]移动到柱子[tex=0.714x1.0]YiLkHgl7MlxE+QjUplQUKA==[/tex]。由此得到以下求解算法:[img=521x230]17a1527c2b89b35.png[/img]由上述算法得到时间复杂度的递归关系如下:[tex=13.143x2.786]pGKeeM0sd0VinZq5g4HXHhrrxDbIZTcrqoPOvbMNwQGKkePNFuHsffVb54NVBeXcQBF48nbGC6sF/IH2qWCN1Gm/aZs0OciVD0kWdnlc2G0=[/tex]所以[tex=7.786x1.357]ZDgEmhCuQCjvNtACAUJcWgMFckZ0KqvGUC+l7GBL97M=[/tex][tex=16.214x1.5]Q2UcsoEH7w+49EFEbBu0KISz7S811Eb4dCmOCiwWwFbM/6F/MzpzXmxaV45W8gEZ[/tex][tex=18.286x1.5]ESv2LGSqAuoAHj/+0CeoeWcd1IJdLsbJhfmQCTHCzMJINAlhJz8BdQYVYtbaPAOoGbtok8ozgMOV6fuWV9h0cQ==[/tex][tex=2.286x0.714]UZiM9xYojwbuX5KRhuDoOA==[/tex][tex=11.429x1.5]7uALpADl0XA3mKSbBRBPJyGSdJOfjSaa+zXL+AMwMeSibCl39SNp6UZVAYyYJgW7[/tex][tex=3.5x1.357]DIS6zHH600IJJV1yjefxl407UTViZxBiCnAjJ7CZN84=[/tex]

    举一反三

    内容

    • 0

      设 [tex=2.0x1.214]vnzjVhyzo/NIhVUgFyjLlA==[/tex] 是 [tex=0.643x0.786]/he/ol8BkDuTTL9yMPtH4Q==[/tex] 阶矩阵, 若 [tex=0.786x1.0]b4HkKtHXeHofHX/gJc8Agg==[/tex] 有 [tex=0.643x0.786]/he/ol8BkDuTTL9yMPtH4Q==[/tex] 个不同的特征值且 [tex=3.857x1.0]ooePFz0xjtusf6vpqQWa8A==[/tex], 求 证: [tex=0.786x1.0]sHo1pKm+gjxjcUAJjHrarQ==[/tex] 相似于对角矩阵.

    • 1

      如果集[tex=0.786x1.0]b4HkKtHXeHofHX/gJc8Agg==[/tex]有[tex=0.643x0.786]/he/ol8BkDuTTL9yMPtH4Q==[/tex]个元素,问[tex=0.786x1.0]b4HkKtHXeHofHX/gJc8Agg==[/tex]共有多少个子集?[tex=0.786x1.0]b4HkKtHXeHofHX/gJc8Agg==[/tex]的真子集有几个?

    • 2

      证明 8.1 节层次分析模型中定义的[tex=0.643x0.786]/he/ol8BkDuTTL9yMPtH4Q==[/tex]阶一致阵[tex=0.786x1.0]b4HkKtHXeHofHX/gJc8Agg==[/tex]有下列性质:(1) [tex=0.786x1.0]b4HkKtHXeHofHX/gJc8Agg==[/tex]的秩为 1 ,惟一非零特征根为[tex=0.643x0.786]/he/ol8BkDuTTL9yMPtH4Q==[/tex];(2)[tex=0.786x1.0]b4HkKtHXeHofHX/gJc8Agg==[/tex]的任一列向量都是对应于[tex=0.643x0.786]/he/ol8BkDuTTL9yMPtH4Q==[/tex]的特征向量.

    • 3

      设 [tex=0.786x1.0]b4HkKtHXeHofHX/gJc8Agg==[/tex] 是 [tex=0.643x0.786]/he/ol8BkDuTTL9yMPtH4Q==[/tex] 阶矩阵,[tex=6.357x1.214]ktGtmiDKstx7m1f25N9jwZT5aYsjOrhIKRDobbavw6Q=[/tex] 是 [tex=0.786x1.0]b4HkKtHXeHofHX/gJc8Agg==[/tex] 的 [tex=0.643x0.786]/he/ol8BkDuTTL9yMPtH4Q==[/tex] 个特征值,求行列式 [tex=3.357x1.357]m48DvRt0hjjMuVqGpYAvJg==[/tex] 的值.

    • 4

      设[tex=0.786x1.0]b4HkKtHXeHofHX/gJc8Agg==[/tex]为[tex=0.643x0.786]/he/ol8BkDuTTL9yMPtH4Q==[/tex]阶实对称正定矩阵, 证明[tex=0.786x1.0]b4HkKtHXeHofHX/gJc8Agg==[/tex]的[tex=0.643x0.786]/he/ol8BkDuTTL9yMPtH4Q==[/tex]个互相正交的特征向量[tex=6.857x1.5]1OLDM79a1WnqWkErUXr8P604kgpkEAoDOqD5+BNAsbem5zwUCkpRL26F98rz8e/f[/tex]关于[tex=0.786x1.0]b4HkKtHXeHofHX/gJc8Agg==[/tex]共轭.