数の表記

ある数が3で割り切れるかどうかは、各桁の数字を足した数が3で割り切れるかを調べればわかるというのは数の性質というよりは十進法という表記から生じる性質です。だから十進法以外では3で割り切れるかということを簡単に判別する方法がなかったり、逆に十進法では難しい7で割り切れるかということを知ることのできる場合もあるということを少し前に「八進法万歳」というエントリーで書きました。
その関連で、3とか7とかいう個別の数ではなく任意の数で割り切れるかどうかを簡単に判別することができる数の表記法はないだろうかということを考えてみました。


 1: 1
 2: 1+1 
 3: 2+1
 4: 2・2 
 5: 2・2+1
 6: 2・3
 7: 2・3+1
 8: 2・2・2
 9: 3・3
10: 2・5
11: 2・5+1
12: 2・2・3
13: 2・2・3+1
14: 2・7
15: 3・5


右側のように表記すれば任意の数で割りきれるかどうかがわかりやすいと思います。素因数分解できるものは、その結果を表記しているのであたりまえです。素数の場合は1と自分自身でしか割り切れないのですが、素因数分解できる合成数に1を足すことで表記しています。つまり最後に「+1」がある場合は素数というわけです。

めんどうくさそうな表記ですが、普段つかっている十進法は慣れているから簡単に感じるという面もあります。
243という数が二百四十三であるというのがすぐにわかるのは、数の理解に十進法を使っているからで、十進法以外の進法と同じように考えると以下のような手順で理解しているはずです。

243=200+40+3
200=2・100
 40=4・10
  3=3

243=2・100+4・10+3


つまり通常の表記にも掛け算や足し算が含まれているわけです。八進数だと二百四十三は363ですが、この表記を十進数に変換するには以下のように計算します。
363=300+60+3
以下左辺の八進数を十進数に変換します。
300=3*64
 60=6*8
  3=3
そして
363=192+48+3
を計算して
363(八進数)=243(十進数)
という答を得ることができます。これもめんどうくさい表記といえばそうです。二進法や十六進法といったコンピュータ関連でよく使われている数の表記にしても慣れるまでは大変そうです。


最初に書いた表記を少し変更します。3は2+1なので、これをそのまま使えば3という表記は不要になります。なんでこんなことをするかというと大きな数を表記する場合、たとえば143は11・13となりますが11や13という表記が十進法であるのは表記の独立性をそこねるし、かといって各素数に新しい記号を割り当てていくと無限に記号が必要になってしまうからです。
3を2+1と表記するというやり方を他の数についても推し進めると全ての数を1と2で表記できるはずです。

 1: 1
 2: 1+1 
 3: 2+1
 4: 2・2 
 5: 2・2+1
 6: 2・(2+1)
 7: 2・(2+1)+1
 8: 2・2・2
 9: (2+1)・(2+1)
10: 2・(2・2+1)
11: 2・(2・2+1)+1
12: 2・2・(2+1)
13: 2・2・(2+1)+1
14: 2・(2・(2+1)+1)
15: (2+1)・(2・2+1)


これを続けると1と2と演算記号を使うだけで全ての自然数が表記できるはずです。2が1+1であることから、もう1段階進めて2を使わないで表記することも可能ですが、記号が減るメリット以上にわかりにくさが増加しそうです。
また0を表すには「0」かそれに相当する記号が別に必要になります。あとは演算記号を書かなくても良いような表記にすることが出来れば、もう少し使いやすくなるんじゃないかと思います。