こんにちは。最近数学をする時間がとれなくてもやっとしているtsujimotterです*1。ちょっとした気晴らしに小ネタを書きたいと思います。
みなさんは,普段 29 の倍数をどのように判定していますか?
え?29 の倍数なんて,判定する機会なんてない?
普通そうですよね。でも,できたら楽しそうだと思いませんか。
twitter でそんな話をしていたら,とある方からこんな方法を教えてもらいました。
29の倍数判定、下一桁の3倍を残りに足したもので行けそうじゃないですか!?
— s(数学)k(くそほど)d(できない) (@ForgetMeNot9339) 2016年8月30日
58→5+24=29
2186629→218689→21895→2204→232→29
とか
面白そうですね!でも,どうしてこんな方法が成り立つのでしょうか。
という数が与えられたとき,その数の1桁目(この場合は
)に
をかけ,2桁目以上の数(この場合は,
)に加えます。すると,
が得られます。先ほどの判定法によると,この が
の倍数であれば,元の数
も
の倍数です。そうでなければ,元の数は
の倍数ではない。
つまり, の倍数の判定法を「桁を減らして」実行する事が可能なのです。
さらに言えば,この操作は繰り返すことができて,最終的に 以下の数に落とすことができます。結果が
または
であれば
の倍数,そうでなければ
の倍数ではない。こうして,簡単に(暗算でも)
の倍数判定ができるというのです。すごいですね!
少し一般化して説明します。
ある数が の倍数であるかどうかを判定したいとします。その数の2桁目以上の数を
とおき,1桁目の数を
とおきます。すると,元の数は
という式でかけるでしょう。
そして,この数が の倍数であるかどうかは,1桁目の数
に
をかけたものに
を加えた数,すなわち
が の倍数かどうかで判定ができるというのです。
このように数式で書いたところで,なんでこんなことがいえるのか訳がわかりませんね。
どうやっても,
注:この式は間違っています。
の合同式を示す事ができません。法 において,両者のあまりが一致するようには到底思えないのです。あまりが一致しなければ,こんな式変形をしたところで,
の倍数の判定ができないじゃないか。
結構悩みました。どうやったらこんな合同式を示せるのだろうと。
しばらく考えた結果,一つの考えに達しました。
実は,示すべき結論が間違っていたのです。
本当に示すべきは,
だったのです。
2つの式は,似ているようでまったく異なります。
私はてっきり,元の数を で割ってあまりを持つとき,そのあまりは変形した数を
で割ったあまりと等しいはずだ,と考えていました。でも,別にそうでなくてもよかったのです。
単に,左辺が の倍数のときに,右辺が
の倍数であって,逆に右辺が
の倍数のときに,左辺が
の倍数であればよいのです。
どうしてこんな簡単なことに気づかなかったのでしょう。思い込みって恐ろしいですね。
これがわかれば,あとは簡単です。一気に証明してしまいましょう。
証明
に
をかけたものから
を引くと,以下が成り立つ.
よって, で割ったあまりを考えると,
が成り立ちます.
ここでもし,
であれば
が成り立ちます.
逆に,
であれば,
となるわけですが,この両辺に における
の逆元
をかけて*2
となって も
の倍数になります.
以上より,
が示せました.
一般化
以上でめでたく の倍数の問題は解決したわけですが,実は今回の話はもっと一般化することができます。
今回のポイントは, における
の逆元を使う,ということでした。
一般に素数 を法とした
の逆元を
としたとき,
が成り立ちます。証明は先ほどとまったく同じです。
における,逆元
を考えてみると,以下のようになります。
| 3 | 1 |
| 7 | 5 |
| 11 | 10 |
| 13 | 4 |
| 17 | 12 |
| 19 | 2 |
| 23 | 7 |
| 29 | 3 |
| 31 | 28 |
| 37 | 26 |
| 41 | 37 |
| 43 | 13 |
| 47 | 33 |
| 53 | 16 |
| 59 | 6 |
| 61 | 55 |
| 67 | 47 |
| 71 | 64 |
| 73 | 22 |
| 79 | 8 |
| 83 | 25 |
| 89 | 9 |
| 97 | 68 |
たとえば, の場合は,
(すなわち,
)を用いて,
が成り立ちます。
たとえば, の倍数である
は,
となり,一瞬で の倍数であることがわかります。
ちなみに, の値が大きいときは,
としても問題ありません。たとえば,
のとき,
ですが,
倍し続けるのは嫌ですよね。そんなときは,
として,
としてもいいわけです。実際,この判定法は の倍数法として比較的よく知られているようです。
おわりに
いやぁ,面白いですね。まさか の倍数判定法に,こんな簡便なものがあるとは思いませんでした。
倍数の判定法は,なかなか奥が深いのでぜひみなさんも考えてみてください。
私自身は,倍数の判定なら「フェルマーの小定理」だろう,と思ってそればかり考えていたのですが・・・。中途半端な知識は,人を頭でっかちにさせることもあるのですね。気をつけないと。
フェルマーの小定理といえば「循環小数」関連の話題も面白いです。よかったらこちらもご覧になってください。
tsujimotter.hatenablog.com
最後に,もう一つ重要な事実を指摘しておきたいと思います。
この判定法を教えてくれた方は「s(数学)k(くそほど)d(できない) 」というスクリーンネームの方なのですが・・・
数学できる人ほどこういうことを言うんですよね。なんつって 笑
(教えてくださってありがとうございます ^_^)
それでは,今日はこの辺で!