アルゴリズム論特論(塩田)第5回 (3) 九去法
九去法
mod9 の法演算を応用した検算法を紹介しましょう。
Ex.8 367×52=19084 の検算をしてみましょう。
- 被乗数、乗数、答えのそれぞれの 各桁の数字を足します。
- その数を 9 で割った余りを求めます
( 9 を超えたら 9 を引く = 九を取り去る、という naming です )
- 被乗数367⟶3+6+7=(3+6)+7⟶7
- 乗数 52⟶5+2=7
- 答え 19084⟶1+9+0+8+4=(1+8)+9+4⟶4
- 「 被乗数から得られた 7 」と「 乗数から得られた 7 」を掛けた 7×7 でまた同じことをします。
- 7×7=49⟶4+9⟶4
- 「 答えから得られた 4 」と一致したので一安心します。
原理 mod9 では
10≡1,
9≡0 なので、
367=3×102+6×10+7≡3×12+6×1+7≡3+6+7=(3+6)+7≡7(mod9),52=5×10+2≡5×1+2≡7(mod9),19084=1×104+9×103+8×10+4≡3×14+9×13+8×1+4≡1+9+8+4=(1+8)+9+4≡4(mod9)
という計算ができ、
367×52≡7×7≡4≡ 答え (mod9)
のはず、ということです。
計算間違えは繰り上がりなどで
1 とか
2 とかずれていることが多いので、
電卓のない時代にはこの方法が結構重宝したらしいです。