僕が小学生の時、非常に風変わりな先生がいました。
良いことも悪いことも教えてくれた先生なのですが、今会ってもおそらくまともに会話が成立しないだろうという自信があります。(非常に頭の良い先生なので思考回路が少々謎)
そんな掴み所のない先生が教えてくれた非常に有用なことというのが、指5本を使って31まで数を数える方法だ。
察しの良い人ならすぐに想像がつくことでしょう。
そう、それはつまり二進数の考え方。
二進数とは0と1、つまりあるかないかで色々なものを表現する数学的な考え方で、コンピューターの基本的な原理はこの数字の羅列によるものなのです。
よく見かけるデータやファイルの容量を示す、Kというアルファベット。
1000を意味する『キロ』ですが、実はこれも二進数に倣い厳密に表現すると「1024」を意味する表記なのです。
(2を10回掛けると1024になる)
そんなわけで、とりあえずみなさんに片手指5本を使って31まで数える方法をお話ししたいと思います。
まず利き手をパーに掌を顔側に向けて開いてみてください。(できれば右手で)
親指の頭に1と書きます。
次に人差し指に2、中指に4、薬指に8、小指に16。
では数え方について。
と言いつつ、ただの足し算です。
親指を立て、他の指を閉じている『いいね』のような状態はそのまま1を表します。
人差し指もあげると2と1で3を表します。
5を示したい時は、中指の4と親指の1を立てればいいわけです。
17を表すときは『電話して』の合図のように、小指と親指を立てます。
指に書かれた数字を全て足したパーの状態が31で(16+8+4+2+1)、2の乗数は足し算の組み合わせによって全ての整数を表すことが出来るのです。
と、ここまでが例の風変わりな先生に教わったこと。
さて、ここからが応用編。
31じゃ足りないよな、ということで指の数を増やしてみることに。
両手を使っちゃおうということです。
両手の指を使うと指の1本目は2の0乗(=1)として数えるので、10本だと9乗までの足し算になります。
2^9 = 512
512 + 256 + 128 +….. +2 +1
そしてこれは2の指数関数の原理上、
2^10 – 1 = 1024 – 1 = 1023 (512 + 256 + 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1)
という風にまとめることが出来るのですが、
指10本でここまで大きな数字を数えられることに僕は非常にワクワクしたのでした。
そして考えました、、
もしこれが指20本なら?
足の指も使ったらどこまで数えられるのか?
もちろん計算しました😇
計算式は以下の通り。
2^指の数 – 1
つまり、足の指まで総動員すると、
2^20 – 1 = 2^10 x 2^10 – 1 = 1024 x 1024 – 1 = 1,048,575
ということになります。
指を使ってなんと、104万8575まで数えることができるのです😲
これはみなさんにとっても心の奥底がほんのり柔らかく温まるような、思わず笑顔にならざるを得ないような朗報だと言えるのではないでしょうか?
ご自身がお持ちの指20本を使うだけで100万を超える数字を数えることが出来るのですから。。
1024を表すKのお話をまたここで持ち出すと、我々人間はK(キロ) x K(キロ) = M(ミリオン)を人体で表現することが出来るのです。
(そんなことをする人はいないでしょうが、それが出来るということを知るだけで割と結構びっくりするもんだ)
と、ここまでは指を増やせば良いという単純な発想から生まれた勘定方法だったのですが、実はこれよりももっと効率的で実用的な方法がある。
右の指5本で31まで数える基本はそのままなのですが、左手で32(31の次の数字を一つのユニットとして考えるため)の束を二進数の乗数で数えるというやり方です。
右手で31まで数えると左の親指(1 x 32)を上げる、もう一度右手で31まで数えると左手の人差し指のみを上げる(2 x 32)、さらにもう一度右手で31数えると左手は人差し指と親指を上げる((2+1) x 32)。
つまりこれは指数と乗数を合わせた方法で、右手で数えた31の次の数字つまり32を左手で出来た二進数と掛け合わせ、最後に右手に残った二進数を足すというやり方です。
例えば、
左手の人差し指と中指、右手の親指と小指が立っていれば、
左手=12
右手=17
なので、
12 x 32 + 17 = 401
ということになり、我々が普段使っている10進数に計算しなおすのが非常に厄介ではあるのですが、指10本を二進数として計算するよりは若干まとまりがある計算方法なのかなと思ったのでした。
この方法だと手の指10本で数えられる最大の数は、
31 x 32 + 31 = 1023
。。。
あれ?
さっきの加法と同じ数字になる。
ということは、これが足の指20本ならどうか。
ということで手で数えられる最大1023に対して足が32 x 32の1024、最後に手のマックス1023を足すと、
1023 x 1024 + 1023 = 1048575
…
同じじゃないかぁああ。
というわけで、 ”左手の中指と右手の薬指だけを折り曲げた形” で、それぞれの方法で計算してみることに。
まず10本全てが二進数となっている加法から。
左手も小指を最大の512とするので、
左手864(512 + 256 + 64 + 32) + 右手23(16 + 4 + 2 + 1) = 887
次に二番目の、左手を32の倍数とする乗法と右手の残りを足す方法。
左手27(1 + 2 + 8 + 16) x 32 + 右手23(1 + 2 + 4 + 16) = 887
と、全く同じ数値が弾き出されるわけです。
というのも、実はやっていることは前者も後者も同じで、
二進数の仕組み上、左手は32の倍数に自動的になっており、それぞれを掛けて足そうが足して掛けようが結果は変わらないからであります。
ですが考え方がシンプルなのは後者の方で、指の形状でどの数値かを認識出来るのと、31 x 32までの九九(31までなので九九と呼べるのかは疑問ですが)を暗記しさえすれば、10本の指が相当便利な計算ツールになるのではないかと思われます。
2の倍数をたくさん足していくよりも32の九九を覚える方が遥かに簡単だからだ。
インドでは小学校で子供たちに99 x 99 の九九を丸暗記させているので、日本でもこの方法を教えればかなり実用的な域にまで到達できるのではないかと思いました。
10000通りを記憶する必要のある99の九九に比べ、32の九九は1000通りで済みますからやはり実用性はあるのかなという印象です。
気力しだいですが笑
というわけで、今回は知っててもあまり得にはならないような、かなり不便寄りな便利な方法をみなさんにお話ししたかったわけですがいかがだったでしょうか。
100万まで数えれるからといって足の指10本を利用してまで数を数えようという猛者はいらっしゃらないだろうし、足の指10本使うならその足を使ってダイソーまで足を運び電卓を買った方がよっぽど効率的ではあるのですが、ちょっとした頭の体操に片手くらいの二進数計算法はマスターしておいても損はないかもしれません。
ではまた。