理想の進法を考える

  • (by K, 2007.11.30)

(1)

  • 僕たちは日常生活では10進数を使うのが一般的である。しかし数学的には10進数である必然性はない。2以上であれば何進法でもいい。
  • 人間が10進法を使うきっかけは人間の指の本数が両手で10だからというものだ。この理由はもっともらしいので僕も信じている。しかしそうであるならば、10進数で何が便利かというと、指を折って数字を数えるのに便利だ、ということになる。というかそれしかない。ってことは、10進数を使い続けるということは、(過去の文献の数字の理解が楽になることを除けば)指を折って数える人の便宜をはかっているだけなのだ。・・・そんな人、今でもそんなにいるの???
  • これに比べれば12進法のほうがマシだ。12進法は、2,3,4,6での除算を簡単にするということが意図されている。指を折る人の便宜ではない。

(2)

  • たいていの数学的センスのある人に聞くと、数学的に最も合理的なのは「2進法」だという。僕もそう思う。しかし2進数は桁が多くなりやすいという問題もある。9を2進数で書けば4桁も必要になる。これはちょっと紙がもったいない、というか読みにくいし間違えやすそうだ。
  • そうすると、2進法ではなく4進数や8進数、16進数ではどうだろうかという話になる。まずどうしてこれらの進法が優先的に出てくるのかといえば、これらは2進数への変換が容易だからである。つまり、進法を変えたといっても表記上の問題だけで、中身は2進数のままだと考えることだってできるわけだ。そして32進法や64進法などを考えることもできるが、このへんになると32種類もの「数字」を用意しなければならず(そうでないと、桁を減らす効果は無い)、それはしんどい。必要な文字が多いというのは表記法として失敗しているような気もする(参考:boyaki_a/00037)。
  • まず4進法について考えてみたい。これは数字を0から3までしか使わないという点で優れているが(小学生が暗記で苦労しない、九九も三三になって1日で覚えられそうだ)、これだと2進数に比べて桁が半分になるだけであり、どうもまだ長い気がする。999は10進数では3桁だけど、4進数では5桁になる。だからもし他の進法も検討する余地があるように思う。
  • 次に8進法について。これは数字を0から7まで使うし、このくらいになってくると九九が七七になるだけでちょっとしかうれしくはないが、まあ10進数を使っているセンスからすると、そんなにはつらくはない。現代の人間にはちょうどいいのかもしれない。10進数で999999999(9が9個)を8進数に直しても、10桁にしかならない。つまり、使い勝手は10進数とたいして違わないのである。古代人が指を折って数えるときに親指を使っていなければ・・・とも言われる。
  • といいことずくめのような8進法だが、僕はお勧めではないと思っている。というのは、8という数字が数学的にきりがよくないと思うからである。もっというと、8は2^3であって、この3が気に入らないのである。3は2進数的に美しい数ではない。・・・綺麗とか汚いとかで話を片付けると納得してもらえないと思うので、別の角度から説明しよう。たとえば2進数で書いた数字があったとする。これを4進法に直すのはとても簡単である。また4進法から2進法に直すのも簡単である。これに8進数を加えてみよう。2→8は簡単。8→2も簡単。しかし、4→8とか8→4はあまり簡単ではない。一度2進数を経由するか、4進数の3桁を8進数の2桁に変換するというちょっとした技を使わなければいけない。では8を飛ばして16進数だったらどうだろう。16は2^4であり、4は2進数的に切りのいい数だから、こんな面倒はない。4→16、16→4はどちらも簡単である。
  • 最後に16進数について。16進数にするとまず数字が少々不足する。今はアルファベットを使っているが、そもそも数字と自然言語とで同じ文字を使うのは、数字が単語に見えたり、単語が数字に見えたりして、なかなか気持ち悪いものである。この気持ち悪さが分からなければ、0〜9に対して、「あいうえおかきくけこ」を割り振ったらどうなるかを想像してみてほしい。「ここにえ個のリンゴがあります。さらにか個のリンゴを買ってきました。全部でいくつですか?」読みやすさが全然違うのが分かるだろうか。まあ、今のプログラム言語のように、0で始まればその単語は数字、という方法もある。たとえば、0AB6Fとか。日本語でやれば、0え個のリンゴってところだろうか。まあでも文字の問題はまだ瑣末だ。あと6種類の数字を考え出せばいいだけなのだから。
  • 九九は15x15までに増えるのではっきりとつらくなりそうだ。すまん、理想の世界の小学生!どうしても我慢できなければ、掛け算割り算のときは一時的に4進法に変換して、それからやればいいかもしれない。・・・桁数は10進数より短くなるケースがまあまあある。たとえば250とかは2桁であらわせるようになる。4桁で6.5万くらいまであらわせる。
  • 切りのよさについては問題ない。ちなみに切りのよさで言うと次に切りが良くなるのは256進法であり、これはもう僕くらいの人間には耐え切れない。となると、もし切りのよさにこだわるなら16か4か2しかないわけで、僕はこの中では16進数が一番いいと思っている。・・・確かに切りのよさなんてたいしたメリットじゃないかもしれない。だから8進数がちょうどいいと感じるかもしれない。でもこんな人間的な理由で決めてしまっていいのか。結局8進数にしたのは、それまで10進数を使っていて、そこからの移行負荷に配慮したため、なんかでいいのか。将来人類は異星人と交流するかもしれない。そのとき異性人が(異性人なりに考えた結果)4進法を使っていたらどうするのか。もしくは超頭が良くて256進法を使っていたらどうするのか。そしたらきっと笑われる(まあそんなに失礼じゃないとは思うけど)。なんでよりにもよって8進法?変換が面倒じゃないか。半端だなあ。扱いきれなくてもてあますのなら4進法にすればいいのに。なんて。

(3)

  • 2進数の世界でも、K(キロ)やM(メガ)などが定義されていて、大きな数を扱うのに便利になっている。しかしこれは1024を単位としていて、16進数で使うと切りが悪い(4進数でも切りが悪い)。だから工夫しないといけないと思う。
  • 16進数で数字をあらわしたときに3桁ずつ切っていくのなら、4096が単位になる。しかしなぜ3桁単位?それなら2桁か4桁のほうがずっと合理的だ。ということで僕は4桁を推したい。2桁だとわざわざ補助単位まで作って省略する必然性を感じないので。そうすると1K=65536だ。これは大きい。1Mは約43億だ。1Gにいたっては281兆を超える。まあ、これはこれで便利なんじゃないだろうか。

(9)

こめんと欄

  • もし12進数や30進数が使われていたらどうなっていたでしょう。12進数だと12、144、1728、20736の順に桁が上がり、30進数だと30、900、270000の順に増えたでしょう -- 12進数と16進数 2020-02-09 (日) 13:44:51

コメントお名前NameLink

リロード   新規 編集 差分 添付   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS
Last-modified: 2020-02-09 (日) 13:44:51 (154d)