Go to the first, previous, next, last section, table of contents.


リスト 練習問題 5 解答「重複因数」

明白な第一のステップは、k f で因数のリストを得ることです。 このリストは常に昇順にソートされているので、 もし重複があれば互いに隣合うことになります。 うまい方法は、リスト自身をひとつシフトして元のリストと比較することです。

1:  [3, 7, 7, 7, 19]   2:  [3, 7, 7, 7, 19]     2:  [3, 7, 7, 7, 19, 0]
    .                  1:  [3, 7, 7, 7, 19, 0]  1:  [0, 3, 7, 7, 7, 19]
                           .                        .

    19551 k f              RET 0 |                  TAB 0 TAB |

1:  [0, 0, 1, 1, 0, 0]   1:  2          1:  0
    .                        .              .

    V M a =                  V R +          0 a =

マッピング演算をうまく機能させるために、 両ベクトルを同じ長さに調節しなければならないことに注意してください。 素因数にゼロはあり得ませんから、 リストの左や右にゼロを追加しても混乱は起こりません。 それ以降の操作はやや率直(強引)です。

おまけ。Calc には @c{\dfn{M\"obius} $\mu$} Moebius μ 関数があって、引数が square-free である場合に限り ゼロを返します。 現実的には、それが上の問題を解決するずっと簡単な方法でした。


Go to the first, previous, next, last section, table of contents.     利用度数