2, 4, 8, 16,… の倍数判定法

高校の数学Aの教科書に、ある自然数Nが2の倍数かどうかを判定する方法が説明されていて、

Nの一の位の数(0~9)をaとすると、適切にkを選べば、

N=10k + a

と表現できて10kは必ず2の倍数なので、一の位の数のaが2の倍数かどうかだけ見ればNが2の倍数かどうかを判定できるというものが説明されています。

で、ある自然数Nが4の倍数かどうかを判定するときは、おなじような方法で、

N=100k + a

として、下2桁aが4の倍数かを調べればよいとされています。

で、練習問題に8の倍数を判定する方法を答えよとなっているわけです。

教科書にこういう感じで問題がでてくるときは、直前の方法を使ってその延長線上で解けることがおおいです。

で、結論からいうと1000は8の倍数なので、8の場合は下3桁を調べればよいわけです。

で、ちょっとおもしろいなと思ってその仕組みみたいなのを考えてみました。

8=2×2×2

これが、10とか100とか1000とかの約数ならおいしいわけですね。

で、2というのは5を掛けると10になってくれるので、

8×5×5×5=(2×5)×(2×5)×(2×5)=10×10×10=1000

この感じで、2^n は10^nの約数なので、ある自然数Nが2^nの倍数かどうかの判断は、下n桁だけ見ればよいとなります。

数学に詳しい方ならわらっちゃうほど簡単なことなんでしょうけど、私はこれを”発見”してすこしうれしかったです。

プログラミングでアルゴリズムに落とし込むとしたら、もっと効率的なのがあるのだなとちょっとウェブをサーチして思いました。

倍数と約数

倍数と約数は自然数(1, 2, 3, …)で考えると自明といえるほどわかりやすい概念ですが、高校数学では整数(…, -2, -1, 0, 1, 2, …)に拡張して考えます。

で、私もいろいろ0がからむときとか混乱が生じたんですが、最終的に、

a=kb

という等式に、適切な整数をa, k, bに入れてそれが成立すれば、aはbの倍数、bはaの約数と理解すればよいというところにたどり着きました。(教科書にはなから書いてあるのですが理解が追い付かなくて(笑))

この考え方からすると、a=0, k=0, b=任意の整数とすると、0はすべての整数の倍数といえることなど興味深いことがわかります。

で、a=0, b=0とすると、kが何であっても等式は成立するので0は0の約数と考えられるということになります。約数というとなんか割り算的な雰囲気があるので、0で割るという数学のタブーを犯している感じがあって、wikipediaによるとたしかに0の約数に0を含める考え方と除外する考え方があるようです。

いや~、数学は面白いな…という感覚を味わっています。受験と関係なく数学に出会いたかった…

”わからない”でこらえる

007にも出演したことがあった往年の大俳優である丹波哲郎さんは、

丹波哲郎の大霊界 死んだらどうなる“という映画を世に問うたことがありました。

丹波さんがどこまで本気だったのか私はわからないですが、興行的においしいからネタとしてやっただけとしたって、その後、そうとうキワモノ的な目で見られることになる覚悟はあったと思います。

霊界、宇宙人が乗ってる円盤、超能力などなど…

私の根本的な疑問はなぜその手の確証がないことを”信じられる”のかという点です。

大学時代にいちおう工学部だったので東大の偉い先生の科学論の単位を取ったことがあり、西洋科学も最終的には”ある仮説を「信じて」それを立証するべく研究をつづける(たとえ少々の反証的なものがあったとしても)”ということに最先端ではなるようですが、研究者たちは”これが答えです”とは間違っても断言しないと思います。こうなのではないかと思って研究していますとしか言わないはずです。

死んだらどうなる - 私にはわからないとしか言えないですね。

で、高校時代の友人とかいろいろな知人とか私が思い出しても少なからずこの”わからない”という状態に耐えられない人がある程度の割合でいます。

で、そういう人たちは”断言してくれるリーダー”の元に集まっていくんですね…

とはいえ、そういう未知とされていることをエンターテイメントとしてこうなんじゃないか、ああなんじゃないかと楽しむのは私は好きです。

ちなみに釈迦は世界3大宗教である仏教の開祖としてはおどろくほど、その手のことを言いませんでした。だれかが、死んだらどうなるんですかと質問しても、答えません。無記です。ここらへんの節度が私が釈迦に感銘を受けているところです。