両手で最大4095まで数えることが出来るという話

Pocket

皆さんは両手で最大いくつまでの数を数えることができますか?

一般的に、「両手で数えられるぐらい」なんて言ったら、10までの数を想定しているかと思います。

これは折り曲がらずに伸びている指の本数を数えるという非常にシンプルな法則によって成り立っています。
この数え方は法則がわかりやすくて、数え方が一通りに定まる優れたものです。

それは認めましょう。

ただし、この方法だと数字を10までしか数えることができないのです!

これは大問題です!

この地球において、頭がいいキャラとして浸透してきた人類が、両手を使って数を10までしか数えられないわけがないのです!
10まで数えるぐらいなら、チンパンジーでもできそうです。

ここは数え方を少し変えてみないといけません。
通常の数え方だと、実に拡張性がないのです。

10まで到達した途端に指を折り返して、11から先を表現するという場合もあるかと思いますが、あれは良くない数え方です。
その数え方だと、9と11が同じ指の形になってしまうからです。

また、指の曲げ具合によって数字を数えるという方法も考えないことにします。
なぜなら、関節が曲がっているか否かという判断は微妙なものですし、手の構造上、指を上手い具合に曲げられず、表現できない数が生まれてしまうからです。

あくまでも指は曲げるか伸ばすかしかないものとしましょう。

それでも、少し頭を使えば1023までは数えることが出来るようになります。
ここまでは、よく知られた結果であるような気がします。

そこから4095まで到達するためには、もう少し頭を捻らなければいけません。
僕はずっと1023が限界だと思っていたのですが、4095まで数える方法、さらにある条件付きでは最大12287までは数えられることを発見し、これはあまり知られていなさそうだなと思ったので記事にします。

まずはどうやって1023までの数を数えるかです。
勘の良い人はもうお気付きでしょう。
1023は、2の10乗から1を引いたものなのです。

重要なことは、みんなが大好きな「二進数」を使って数えることです。

二進数を知らない人のためにざっくりと説明しましょう。
我々が前提としている10進数の世界では、一桁一桁は0から9までの10個の数字しかありません。
しかし二進数の世界では一桁一桁が0か1の二個の数字しかないのです。
例えば、10進数の世界で2と書かれているものは二進数の世界では10と書けます。
つまり、1+1をする時に、二進数の世界では繰り上がりが起き、答えが10(10進数でいうところの2)になるのです。

このような、10進数での数字と二進数の数字は全て対応しています。
だから、まず二進数で数字を数え上げ、その後に10進数に変換してあげれば良いのです。

数を数える時に、二進数を用いると何が良いかというと、数えられる数字の数が爆発的に増えるということです。

右手の小指から左手の小指にかけて、1の位、2の位、4の位、8の位、16の位、32の位、64の位、128の位、256の位、512の位、という風に割り当てましょう。

つまり、もしも右手の小指が伸びている状態なら1を加え、さらにもしも右手の薬指が伸びていたら2を加え、さらにもしも右手の中指が伸びていたら4を加え、……、さらにもしも左手の薬指が伸びている状態なら256を加え、さらにもしも左手の小指が伸びていたら512を加える、という感じです。

例を見てみましょう。

これは220です。
伸びているゆびに割り当てられた数字を足し合わせると220になるのです。

この形から、221を作りたければ、折り曲げている右手の小指(1の位)を伸ばします。

こういう数え方をすると、片手で0から31まで、両手では0から1023まで数えることが出来るのです。

ここで注意が必要です。

今までは伸びている指の本数を数えるだけだったので、特別な法則は必要ありませんでした。
しかし、二進数の場合は状況が違います!

二進数の場合は、どの順番で位を割り振るかということが重要となります。
右手の小指を1の位にするのか、左手の小指を1の位にするのかということです。

一般的に使われるルールがなければ、ある人は1だと思った数字を、ある人は512であると思うかもしれません。これは望まれないことです。

そこで、「伸びている指の本数を数える」のような、前提とする法則を、独自に決める必要があります。

二進数の場合、最も正当性があると思われる法則は二つです。それは「右側優先の法則」「自分視点の法則」です。
それぞれ説明しましょう。

まず、右側優先の法則です。これは順序付けを行う時は右側から順序を付けていくという法則です。

そして、次に自分視点の法則です。自分から見て右側というのは、正面に向かい合って立っている人から見ると左側になります。
数を数える時は、その両手の持ち主の立場に立って、法則を適用するというのが自分視点の法則です。
これによって、右側というのが、誰から見ても同じものとなります。

この、「手を見た時に誰が見ても一通りの数に定まる」ということは非常に大切だと思うので、正当に思えるような法則をしっかりと作っていくことにします。

さて、ここまではある程度知られている内容です。
でも、もうちょっと頭を使えば、もう少し多く数えられるのです。
4095まで数える方法に行きましょう。

ポイントは「両手の指」を使って数えるということを議論しているのではなく、「両手」を使って数えるということを議論しているということです。

結論を言います。

私たちの手には裏表があります。

それを、二進数の桁の一つにカウントすることによって、数えられる数字の数は2倍になります。そして、私たちには手が二つあるので、裏表を考えることによって、数えられる数字の数を4倍にまですることが出来るのです。

ここで、個人差はあると思うのですが、自分に手の甲が向いている状態で数を数えることが自然な状態という風に決めましょう。

そして、右側優先の法則によって、右手が手の平を自分に向けている時は1024を足し、左手が手の平を自分に向けている時は2048を足すという風に数えましょう。

すると、例えば3456はこんな感じになります。

これでめでたく4095までの数を、一通りに表現することができました。

この数え方は非常に優秀です。なぜなら、手の写真を見た時に、それが自分から見た方から撮ったものでも、対面した相手が撮ったものでも、手を上に向けて数えていても下に向けて数えていても、その両手に対応する数はただ一つに定まるからです。

それは、自分から見た場合には左手は左側にあり、逆に、対面した相手から見た場合には、左手は右側にあるということ。
さらには手が面を向いていても裏を向いていても、それが右手か左手かは判別することが出来るということから言えます。

以上で、両手で4095までの数を数えることが出来るという話は終わりになるのですが、エピローグはしばらく続きます。

当然、僕は4095よりも大きい数をも数えたかったのです。
そして、その方法はある程度の条件付きで満たされることになりました。
一定の条件のもとでは12287までは数えることができるのです。

発想としては、手をクロスさせるというものです。

手をクロスさせることによって、桁が一つ増えます。
そして、「手をクロスさせない状態」「クロスした上に右手が自分側にある状態」「クロスした上に左手が自分側にある状態」という三つのパターンがあるので、最後の桁だけは3進数になるのです。

この数え方を思いついた時、「これで12287まで数えられるぞ!」と湧き上がっていたのですが、この数え方には問題があります。

まず、クロスした時に右手が自分側にあるのか左手が自分側にあるのかということは、手首まで見ないとわかりません。
これは、今までの流儀に少し反している気がします。

そこで「手をクロスさせない状態」と「クロスしている状態」を最後の桁として、8191までの数が数えられるという風に考えましょう。

しかし、この数え方にはそれでも尚問題があるのです。

それは手のみの写真や絵を見た時には、数字が一通りに定まらないという問題です。

次の図を見てください。

この絵は、左側に右手があるので、今までの判定法から言えば、対面した相手の手を見ていると判断できるでしょう。

こんな感じです。

自分視点の法則に注意すると、584になるはずです。

しかし、この手はこのようにクロスしているかもしれません。

この場合は、右手が左側にあるので、自分自身の視点から見ていることがわかります。対面した相手から見ると、腕をクロスさせることによって、右手は右側に行くはずだからです。

ここで、三進数の表記として、右手優先の法則に従い、右手が手前にあるクロスを4096とカウントし、左手が手前にあるクロスを8192とカウントすると定めましょう。
すると、この手は、7241になるはずです。

このように、手首より上の両手だけしかない画像が表す数を判別するには、自分が見た手なのか、対面の人が見た手なのかという情報を付け加えるか、「判別不明の時は自分から見た手とする」などという前提条件がないと、数字が一通りに定まらないのです。

ただ、もしも自分が見た手なのか、対面の人が見た手なのかという情報があれば、手をクロスしているかクロスしていないのかは左手と右手のどちらが右側にあるのか(左側にあるのか)ということを確認するだけで判別できます。

これは逆にいうと、ある程度の条件の元では8191や12287まで数えられるという主張は正しいともいえるでしょう。
ある程度の条件というのは、数えているのが自分というのが明らかな場合や、手首まで見えている場合などです。

ただ、一通りに定まるかどうかという観点からから言って、両手を使って数えられる数は0から4195までというのが、安全な答えという感じはします。

これで皆さんは数を数えるということに関して、賢いチンパンジーよりもはるかに賢くなったといえるでしょう!両手を使って4195まで数えることが出来るのですから!

以上、両手で数えられるほどの文字数の記事を最後まで読んでいただき、どうもありがとうございました!

(2017年7月30日、追記)
続編書きました。「手で数えられる数の最大値(続編)実は9215までいける?36863まで?」

Pocket