栄光学園2023年度入試問題 解決までの道③
塾長の独り言いよいよ種明かし…の始まり
前回の続きです。
[A]は、2進数表記のAー1の各桁に含まれる「0」を「2」に直した上で、すべての桁の数の和を求めればよい。…それは何故かという問題です。
これを解き明かすには「2進数とはそもそも何か?」という問題を解決しなければ始まりません。そこで、今回は2進数そのものについて、お話ししようと思います。
2進数とはなにか?
「2進数」の定義はいくつも考えられますが、その中で最も形式的で明瞭な定義は…
2進数とは、2種類の記号のみを用いて表現された数である。
あまりに簡潔すぎて、なんの事やらさっぱり分かりませんね。それでは、10進数におきかえて考えてみましょう。
使い慣れた10進数は…
10進数は、ふだんわたしたちが日常的に用いている方法で表された数です。テーブルの上にある飴玉を数えるとき「いち、にぃ、さん、しぃ…」と数えますが、これを紙に書き出すと「1,2,3,4,5,6,7,8,9,10、11…」となります。「0・1・2・3・4・5・6・7・8・9」という10種類の数字(記号)を用いて数の大きさを表現する。これが10進数です。
したがって、1文字で表現することができる個数の限界は「九つ」です。
それより多い個数は、仕方がないので2つの文字を組み合わせて表現するわけです。つまり「10,11,12,13,…98,99」というふうに。2文字で表現できる個数の限界は「九十九個」です。「記号を10種類しか用いてはいけない」という制限が、2文字以内で表現できる最大の個数を「九十九個(種類)」に限定してしまうのです。
それより多い個数は、仕方なく3文字を組み合わせて表現することになります。「100,101,102,……,998,999」というふうに…。このようにして、表現できる個数の限界に達するたびに、用いる文字の数を増やして対応するんですね。それがつまり「桁が増える」ということです。
さて、そうして飴玉を数えたら365個だったとしましょう。
このときに「3」「6」「5」という記号は、もはや単なる記号ではなくなります。「それぞれに意味を持った記号になる」わけです。
「3」は「100が三つ集まって」おり、「6」は「10が六つ集まって」おり、「5」は「1が五つ集まって」いる…というように。ですから「365」という数の正体は…
365=100×3+10×6+1×5
ということになるのです。
では、この「100」や「10」や「1」はどのように決まるのでしょうか。
持てる荷物束の個数は9個が限界
各桁に記述できる記号は、上でお話ししたとおり「0」から「9」までの10種類しかありません。つまりそれぞれの桁は「○○が九つ集まっている」ということを表現するのが精一杯で、それより多く集まっている状態を表現することができません。
そこで「わたしには十個分の荷物を持つことができないから、この十個分の荷物を一つの束にしてあなたが持って下さい」と、左隣の桁に荷物の束を「託す」ことになります。十個分の荷物束1つを託したあと自分の荷物がなくなるので、その桁は「0」になります。一方で、託された桁の方は、持っている荷物束が1つ増えることになります。それがいわゆる「繰り上がり」で、各桁の「位(くらい)」という考え方につながります。
一の位 → 1個ずつの荷物を九つまで持てる桁。
十の位 → 一の位から託された荷物10個分の束を九つまで持てる桁。
百の位 → 十の位から託された荷物100個分の束を九つまで持てる桁。
…ということになるわけです。
つまり各桁がもてる荷物の個数は、それぞれ右隣の桁から10束分1つをまとめて託されるので、
一の位 → 1個ずつ
十の位 → 1個×10束=10個ずつ(1×10)
百の位 → 10個×10束=100個ずつ(1×10×10)
千の位 → 100個×10束=1000個ずつ(1×10×10×10)
万の位 → 1000個×10束=10000個ずつ(1×10×10×10×10)
というふうに決まることになるのです。
この「荷持束を託す」という繰り上がり現象が連鎖的につぎつぎに起こる場合があります。
連鎖反応が起こることも…
例えば6999個の飴玉があったとして、ここに別の1個を加えたら、どうなるでしょう?
①まず一の位の飴玉が9個から10個に増える。
②一の位は持ち切れない10個の飴玉を、すべて一つの束にして十の位に託す。自分は荷物がなくなるので0になる。
③10個をひとまとめにした束を1束だけ託された十の位は、束が10個に増える(飴玉が100個になる)。
④十の位は持ち切れない100個の飴玉をすべて一つの束にして百の位に託す。自分は荷物がなくなるので0になる。
⑤100個をひとまとめにした束を1束だけ託された百の位は、束が10個に増える(飴玉が1000個になる)。
⑥百の位は持ち切れない1000個の飴玉を、すべて一つの束にして千の位に託す。自分は荷物がなくなるので0になる。
⑤1000個をひとまとめにした束を1束だけ託された千の位は、束が7個に増える(飴玉は7000個になる)。
こうして 6999+1=7000 となるわけです。まるで責任の横流しが連鎖的に起こっているようですね。
この「位取り」という考え方を別の角度から見てみましょう。
日本語では、365という数は「三百 六十 五」と表現しますね。これは日本人が発明した「持っている荷物の個数と、持っている荷物の束の種類とを並べて表記する」という、非常に分かり易い表記法だったのです。
記号が10個に決まったのは…
さて、そうすると…「人類が、数の表記に用いる記号の種類を0から9までの10種類に決めたのはどうしてか?」という疑問に突き当たります。「7種類の記号」とか「19種類の記号」でも良かったんじゃないのかと思われるかも知れません。現にコンピューター・プログラマーの世界では「16種類の記号」が採用されています。
この10進数つまり「10種類の記号」という約束は人種や文化を問わず、ほぼ世界中で採用されています。まれに5種類だったり、5種類と10種類を併用する(算盤がそうです)こともありますが。それは、人種や文化を問わずヒトの指の数が10本だからだと言われています。「指が10本集まって束になってヒト1人」というわけですね。「10種類の記号」というのは人類にとって便利で都合が良かった…。ただそれだけのことだったのです。
そこで2進数!
では人間が左右の手に1本ずつ、合わせて2本しか指を持っていなかったら…。そうです、「2種類の記号」を用いて個数を表現していたかも知れません。それが「2進数」です! …ちょっと気持ちの悪い話ですね。
2進数による記数法は、10進数とまったく同じ原理に基づきます。
①数を表記するのに「0と1」の2種類の記号を用いる。
②各桁が持つことができる荷物束の個数は一つが限界である。
③各桁は、荷物束が二つ集まると、それらをまとめて束にして左隣の桁に託す。
④したがって各桁の位取りは右端から順に、一の位、二の位、四の位、八の位、十六の位、三十二の位…となる。
テーブルの上に例えば17個の飴玉が並んでいたとして、これを10進数で数えると、こうなります。「1個、2個、3個、4個、5個、6個、7個、8個、9個、10個、11個、12個、13個、14個、15個、16個、17個…ああ、17個か!」
ところがこれを2進数で数えると「1個、10個、11個、100個、101個、110個、111個、1000個、1001個、1010個、1011個、1100個、1101個、1110個、1111個、10000個、10001個…ああ、10001個か!」と、こうなるわけです(笑)
なにしろ2進数では、各桁が一つまでしか荷物の束を持てないため、二つ目の荷物を持った瞬間に、すぐにそれを束にして左隣の桁に託すことになります。たかが「17個」を表現するのに「10001個」と5個もの記号を連ねる必要があるのは、それが原因です。
ちなみに「10001個」は「いち れい れい れい いち個」と読みます。「いちまんいち個」と読んではいけません。その理由は、もうお分かりですね。左端の「1」は「一万個の束が一つ集まっている」ことを意味しないからです。
たとえば1011という2進数の正体は、10進数で表現すると、
1011個=8×1+4×0+2×1+1×1=11個
…ということになるのです。
混乱を避けるため、通常は数の末尾に(10)や(2)を付記することで、それが10進数なのか2進数なのかを区別します。
1101(2)=11(10) というわけです。
2進数は本当に不便なのか…
それは、さておき…。
「2進数は、小さな個数を表現するにも多くの桁が必要になる。そんな不便な記数法は価値がない! 10進数こそ万能だ!」と思われるかも知れませんが…。
でも、そんなことを言ったら2進数を使う「2本指星人」に笑われます。地球人は、どうしてそんなに計算が遅いの?と。
2本指星人は、あらゆる四則演算を超高速でこなせます。だって1と0を用いる非常に単純な計算をするだけなんですから。九九を覚える必要もありません。…とはいえ、彼らの計算方法をここですべてご紹介するのは、ちと骨が折れます。ぜひみなさま自身が考えてみて下さい。なに、わたしたち地球人が計算するのと同じ仕組みを使っているので、大丈夫ですよ。
ここでは、2進数を2で割る計算だけお話して終わりにしたいと思います。
2本指星人は、どうやって数を半分にするのか?
10進数を10で割るときに、末尾の0を削除するだけで済むのはご存じですね。2進数でも同じ…2進数を2で割るというのは、末尾の0を削除するのと同じなのです。
たとえば8÷2=4ですが、これを2進数では…
8=1000(2)÷2=100(2)=4 となります。
あるいは65536を2で16回割る計算は、10進数では以下の通りですが…
65536÷2÷2÷2÷2÷2÷2÷2÷2÷2÷2÷2÷2÷2÷2÷2÷2
(16回割り算スタート)
=32768÷2÷2÷2÷2÷2÷2÷2÷2÷2÷2÷2÷2÷2÷2÷2
(あと15回)
=16384÷2÷2÷2÷2÷2÷2÷2÷2÷2÷2÷2÷2÷2÷2(あと14回)
=8192÷2÷2÷2÷2÷2÷2÷2÷2÷2÷2÷2÷2÷2(あと13回)
=4096÷2÷2÷2÷2÷2÷2÷2÷2÷2÷2÷2÷2(あと12回)
=2048÷2÷2÷2÷2÷2÷2÷2÷2÷2÷2÷2(あと11回)
=1024÷2÷2÷2÷2÷2÷2÷2÷2÷2÷2(あと10回)
=512÷2÷2÷2÷2÷2÷2÷2÷2÷2(あと9回)
=256÷2÷2÷2÷2÷2÷2÷2÷2(あと8回)
=128÷2÷2÷2÷2÷2÷2÷2(あと7回)
=64÷2÷2÷2÷2÷2÷2(あと6回)
=32÷2÷2÷2÷2÷2(あと5回)
=16÷2÷2÷2÷2(あと4回)
=8÷2÷2÷2(あと3回)
=4÷2÷2(あと2回)
=2÷2(ラスト1回)
=1(ゴールイン!)
2進数では、以下の通り一瞬です。
65536=10000000000000000(2)なので、
10000000000000000(2)
÷2÷2÷2÷2÷2÷2÷2÷2÷2÷2÷2÷2÷2÷2÷2÷2
=1(0を16個取り除くだけ)
世界は解釈でできている!
さあて…これで2023年度栄光中学入試問題に潜む謎を解決する手はずが整いました! 次回から本格的にその謎に迫っていきましょう! 今回の記事の中に、実はその重大なヒントがいくつも隠れています。皆さんも、一緒に考えてみてください。
またこの記事だけをお読みになって2進数について深い理解を得られるとすれば、あなたは、驚きと興奮に満ちた新しい世界の入り口に立ったと言えるかもしれません。わたしたちがふだん使わない数の数え方…ただそれに気づくだけで、信じられないほど新鮮な愉悦があなたを待っています。ここに19世紀ドイツの哲学者フリードリヒ・ニーチェの言葉を引いて結びとしたいと思います。
「事実というものは存在しない。
存在するのは解釈だけである。」