アルゴリズム論特論(塩田)第6回 (3) 逆数計算アルゴリズム
逆数が存在するための条件
Th.6 法 n で 1b が存在すること ⇔ gcd(b,n)=1
証明 ⇒)
x=1b とおくと定義より
∃ y such that b×x=1+n×y
gcd(b,n) は
b と
n の公約数であるので
1=b×x−n×y
の約数でもあり、
gcd(b,n)=1.
⇐) は次のアルゴリズムより。(証明終)
逆数計算アルゴリズム
Algorithm 7 (法
n での逆数)
- 入力:b, n
- 出力:法 n での b の逆数 1b
- 拡張ユークリッドアルゴリズムを引数 b, n で実行し、d=gcd(b,n) と、d=bx+ny を満たす x, y を求める。
- d≠1 ならば「逆数は存在しません」と表示し、終了。
- x を出力。
計算のテクニック
Alg.7 では y は出力に関与しませんので、
拡張ユークリッドを呼び出すよりも、
拡張ユークリッドから y の計算式を除いた専用ルーティンを組んだ方が速くなります。