TOP
記録室
秘書室
応接室
図書室
美術室
外交室
 
〜算数の時間の寝言〜
『指折り数えるわけじゃない』
 
 子供向けの番組で、十以上の数の数え方を教えていた。
 一個から数えていって十個目になると、十個を一つの塊とみなして十の桁に1を書き、
一の桁に0を書く。すなわち、「10」と書く。
 そして同じように、二十、三十、と増えていって、九十九、百になると、百を一つの
塊とみなして百の桁に1を書き、十の桁と一の桁に0を書く。すなわち、「100」と
書く。
 なるほどこんな教え方をしているのかと思い、感心してしまった。自分が子供の頃は、
桁上がりについてこんなことを習った記憶が無い。それとも忘れているだけなのだろう
か。

 このような数え方は、10進数法と呼ばれる。算数を覚えると当たり前のように使っ
ているのだが、実はそれほど当たり前なことではない。
 例えば、日本語の数え方は10進数法からはずれている。

 まず、表記方法が10進数法とまったく違う。10進数法が0〜9の文字だけが使わ
れ、桁上がりとともに文字数が増えていくのに対し、日本語では、一〜十、百千万億な
ど多数の文字が使われ、さらに文字数も増えたり減ったりする。

 また、数え上げの規則でも日本語は10進数法に則っていない。10進数法では、1
0、100、1000という具合にひたすら10を基数にして桁があがるのに対し、日
本語では、万以下の桁では10が基数(一、十、百、千、万)で、それより上の桁では
10000が基数(億、兆、京)という、奇妙な規則になっている。私は小学生のとき、
この規則がなかなか理解できなかった。
 ちなみに英語の場合は、千以下の桁では10が基数で、それ以上の桁では1000が
基数となる。これもやはり奇妙だ。

 さらに、10進数では10、100のように「0」を使うことで各桁を必ず埋めてい
るのに対し、日本語では0が全く使われない。例えば101は百一であり、十の桁は無
視されて飛ばされる。
 英語でも同様に、0を使っていない。0以外の数に0が使われている言語は、ほとん
ど無いらしい。

 算数をするには、日本語や英語の数よりも厳密な10進数の方が使いやすいのは間違
い無い。
 しかし、数え方は10進数だけではない。人間の頭はかなり柔軟らしく、都合に合わ
せていろいろな進数で数を数えることができる。例えば時計では12進数や60進数が
使われているし、音楽では変則的ながらも8進数(オクターブ)が使われている。角度
では360進数や2πが使われている。

 算数の場合、大概は10進数が使われる。そのためか、10進数の計算がもっとも合
理的なように思われがちだが、私はそうは思わない。最初に10進数が発達したから今
でも使っているというだけで、10進数が特別計算に向いているとは思えない。少なく
とも、10進数より2進数の方が各桁の計算が簡単なことは明らかだ。但しその代わり
に、2進数では大量の桁数を扱わねばならないという不便さがある。
 では、どんな進数が算数に向いているのだろうか。

 コンピュータは、原則的に2進数で計算をしている。そのため、10進数の計算をす
るには、一度2進数に変換する必要がある。
 10進数から2進数に変換するプログラムを作ってみると、実はこのプログラムさえ
あれば、10進数だけでなく、12進数でも16進数でも同じように2進数に変換でき
ることがわかる。これは、2進数を基準にしてみたとき、何進数であってもなんら計算
しやすさには違いがない、ということを意味する。2進数のコンピュータにとっては、
2進数だけが唯一計算に向いている進数なのだ。

 それでは、人間にとって計算に向いているのは何進数なのだろうか。
 人間が頭の中で何進数で計算しているのかは、はかりしれない。2.5進数とかπ進
数とか聞いたことも無い計算をしているのかもしれない。人によってぜんぜん違うのか
もしれない。
 ただ、一般的に桁数が多い計算は苦手だ、ということは言えそうだ。2進数の計算が
単純だとはいえ、人間が2進数のまま計算することは少ない。普通は10進数か16進
数に変換してから計算する。
 逆に、進数の多さに対しては比較的簡単に対応できる。慣れてさえしまえば10進数
以外の計算も平気で行えるようになる。例えば10進数の掛け算で使われる九九の表の
変わりに、16進数の掛け算としてFFの表を覚えてしまえば、10進数と同じくらい
簡単に計算できるようになる。
 しかし、もしそれ以上の進数を使うとなると、掛け算の表が膨大になるためかえって
不便になる。10進数なら9×9=81個、16進数なら15×15=225個、20
進数なら19×19=361個を覚える必要がある。これぐらいを覚える程度が限度だ
ろう。それ以上だと掛け算の表を分割しなければ覚えきれなくなってしまい、結局桁数
が増えるのと何ら違わない。

 結局、何進数であろうとも計算には大差なく、ただ桁上がりだけが難しい、というこ
とが言えそうだ。だったら、桁数が少なくて済み、かつ、すでに世界中で使われている
ユニークな文字群0〜9で表現できる10進数が、今のところ最も便利そうだ。そして
その次が、0〜8表現できる9進数が便利なのかもしれない。

 ところで、算数のときに16進数が10進数より使いづらいのは、10以上の数がア
ルファベットで表記されているからだと思う。9とAの間になんとなく切れ目を感じて
しまうのだ。もし、16進数のA〜Fにユニークな文字が割り当てられるならば、10
進数よりも16進数の方が計算に適した進数に思える。16進数は10進数より桁数が
少なくてすむし、2進数コンピュータとの相性もいい。これは数百年程度であっという
間に普及しそうな気がする。
(ちなみに16進数では−1をFFと書くことが多い。これは補数と呼ばれる処理であっ
て、16進数の性質とは切り離して考えるべきだろう。例えばIEEEの浮動小数点法
は、+/−の符号をつけることで実用できているのだから)

 それでも多くの人が、指折り数えることができる5進数か10進数こそが計算に向い
ているのだ、と言い張るかもしれない。それはそれで十分に納得できる。
 しかし、111+111 を指折り数えて計算する人は普通いないのだ。

散歩  05/Jan/2000

寝言