Log of ROYGB

はてなダイアリーが廃止されるので、引っ越しました。

孤独な7の判別式

http://d.hatena.ne.jp/hiroyukikojima/20080831の『「7の倍数」の判定法 - hiroyukikojimaの日記』に書かれていた、ある数が7の倍数であるかどうかの判定法に関して。以前に「八進法万歳」というエントリで、八進法ならわりと簡単に7の倍数かどうかがわかるというのを書きましたが、通常使っている十進法でのやりかたは知りませんでした。
しかしどうしてこの判定法は成立するのでしょうか。

小学生の息子は、倍数判定法について、2,3,4,5,8,9については知っていたが、「7の倍数の判定法ってあるの?」と聞くので、そういえばあったな、と思い出してみた。結論からいうと、「十の位以上と一の位を切り離し、前者から後者の2倍を引く。この操作を繰り返して、2桁か1桁になって、それが7の倍数なら元の数も7の倍数」というものである。例えば、「343」を判定するなら、「34−3×2=28」が7の倍数だから元の「343」も7の倍数、ということになる。

http://d.hatena.ne.jp/hiroyukikojima/20080831


一般的な場合だと難しそうなので、三桁の場合で考えて見ます。
まず三桁の数字をa,b,cとおいきます。これを数字と同じようにabcと表記するとa×b×cという意味になってしまうので、以下のようにします。


100a+10b+c
これが7の倍数である場合には


10a+b−2c
も7の倍数であるというのが問題の判別式です。
どうにかして上の式から下の式が導き出せればいいわけです。どうにかした結果は以下。


100a+10b+c
が7の倍数であるとした場合


44a+3b+c
も7の倍数であり、同様に


37a+3b+c
も7の倍数であり、さらに


9a+3b+c
も7の倍数である。

そこで最初の式から下の3つの式を引くと

(100−44−37−9)a+(10−3−3−3)b+c−c−c−c
から
10a+b−2c
が求まります。


どうして下の3つの式が7の倍数になるかというと
100a+10b+c
が7の倍数であるならば、そこから7や7の倍数を引いていっても7の倍数だと考えられるからです。
7aなどの記号を含んでいる場合でも7の倍数であることがわかるので、引くことができます。具体例を示せば、100a+10b+cが7の倍数ならば、そこから7aを引いた93a+10b+cも7の倍数であることがわかります。



これで三桁の数の場合には判別式が成り立つことが証明できました。もっと桁数をふやした場合でも、手間はかかるでしょうが証明可能でしょう。しかし、任意の桁で成立することを証明するのは、もっと難しいんではないかと想像します。最初にこのアイデアを思いつくのは、それとは別の意味で難しいのではと思います。


(2日)追記
三桁でなく、任意の桁の場合については「孤独な7の判別式一般化」に書きました。三桁の場合も上で書いたよりもシンプルになりました。