5 ÷ 3 × 6 を求める
こんにちは、かくまいです。
突然ですが、あなたは5 ÷ 3 × 6 が計算できますか…?
…
…
はい、10です。
簡単でしたね。
しかし電卓でこの問題を解くのは少し厄介です。
性能が低い場合
5 ÷ 3 = 1.66666666....
1.66666666... × 6 = 9.99999999......
となり誤差が発生するからです。(*1)
今回は分数、小数、並び替えを使わずこれを計算したいと思います
具体的には
5 ÷ 3 × 6の代わりに 5 ÷ 3 × 6を 17で割った余りを計算する事にします
元の答えは17未満なので、どちらも同じ値になるはずです
ここで5を3で割った余りと 2を3で割った余りは等しいというのを
5 ≡ 2 (mod 3)
のように書きます
5 ÷ 3 × 6 ≡ X (mod 17)
を満たす最小のXが求めたい答えです
ところで、実はmod 17上で「÷3」は「×6」と同じ意味になります
これは3の逆元(掛けると1になる物)が6であるという事です
実際、式に起こしてみると
1/3 ≡ 6 (mod 17)
となりますが、両辺に3を掛けると
1 ≡ 3 × 6 (mod 17)
となるため、正しそうです
上の結果を利用して計算してみると
5 ÷ 3 × 6 ≡ X (mod 17)
⇔ 5 × 6 × 6 ≡ X (mod 17)
⇔ 180 ≡ X (mod 17)
より180を17で割った余りは10なので 5 ÷ 3 × 6 = 10と一致していることが分かります
------------------------------------------------------------
*1
2進数では表現できない小数があるため、限りなく近い数は扱えても数が大きいときは誤差が出る