アルゴリズム論特論(塩田) 2017年度教材 第8回

  • 授業内容
    • 除算と割り算の違い
      • a から b を何回取り除けるか、を数えるのが除算
      • a を b 等分しようとするのが割り算

    • 有理数
      • 単位分数 1/b が「ある」ことにする ⇒ 余り無く a ÷ b ができる
      • rational number ( 比の数 ) を reasonable と勘違いして訳してしまった。
      • 間違いだったのだが、
        分数で書くことが無理な数 = 無理数 = 有理数でない数
        という話ともマッチして広く受け入れられた。

    • 法演算での除算
      • bx ≡ 1 ( mod n ) が整数解 x をもつとき、b は mod n で逆数 x を持つ、と定義する。
      • b は mod n で逆数 x を持つこと ⇔ gcd(b, n) = 1
      • この x はユークリッドのアルゴリズムを用いて求める。

    • 法演算での逆数の、手計算における工夫
      • 任意の法 n で, 1/1 = 1, 1/(n-1) = n-1
      • 法 n が奇数のとき 1/2 = (1+n)/2
      • 1/3 は
        • n = 3k+1 の形のとき 1/3 = (1+2n)/3
        • n = 3k+2 の形のとき 1/3 = (1+n)/3
      • b が小さいときは
        1/b = (1+n)/b = (1+2n)/b = ...
        と書いていって、最初に割り切れたところが答え。( b回まわす間に必ず答えがある。)

  • ツボ
    • 法演算での除算は、除数が法と互いに素なときのみ可能
    • ユークリッドのアルゴリズムの応用により、法演算での除算の計算量は O(log2(n))

戻る