新しい記数法を作ろう
皆さ~ん!
10進法 使ってますか?
※元ネタ:野菜嫌いもこれで克服!サラダに合う新しいドレッシングを考えてみた - YouTube
こんにちは、108Hassiumです。
以前、こんなツイートを見ました。
底が −2 で仮数が 0, 1, ω, ω^2である記数法(アイゼンシュタインの記数法)で0. ∗ ∗ ∗ ∗ ∗ ∗ . . . と表される数全体。https://t.co/fWa4gAjBOu
— はし (@hy111115) 2020年8月27日
の5ページの練習問題(5)が面白かったので、書きました。 pic.twitter.com/Vm4mmsLMZw
記数法というのは文字通り「数を表す方法」のことで、10進法や2進法も記数法の一種です。
また、同じく複素数を使った記数法として「-1+i進法」というのもあるそうです。
-1+i進法は仮数*1を{0,1}とし、底*2を-1+iとする記数法です。
アイゼンシュタイン記数法と-1+i進法に共通する特徴として、任意の複素数を表記できるというものがあります。
例えば10進法では負符号を使わなければ表せない-7という数はアイゼンシュタイン記数法では1011と表すことができ、-1+i進法で10.01と表せる数は10進数では加法と虚数単位を使って1+1.5iと書かなければなりません。
また、Wikipediaの以下のページには、上記のものの他にもたくさんの変則的な記数法が載っています。
これらの存在を知り、私もオリジナルの記数法を作ってみたくなりました。
なお、作成する目的は存在しません。
Wikipediaにもこんな記述があります。
実用性なんていらないんです。
既存の記数法
新しいものを紹介する前に、既存のものを先に紹介しておきます。
-2進法
- 2進法は、通常の2進数の底を2から-2に変えた記数法です。
例えば、-2進法で"11.011"と表記される数を10進数に直すと以下のようになります。
-2進法では、負符号を使わずに任意の実数を表すことができます。
ちなみに、「-2進法での10桁以下の整数」を2進数と同じ順序で並べたものをグラフにすると以下のようになります。
フラクタルっぽいギザギザになります。
平衡3進法
平衡3進法は、3進法の仮数を{0,1,2}から{-1,0,1}に変えた記数法です。
-1をと表記する場合、と表記される数を10進数に直すと以下のようになります。
平衡3進法も、-2進法と同じく実数全体を表せる記数法です。
平衡3進法における7桁以下の整数をグラフにすると以下のようになります。(を3進法での2に対応させています。)
こちらもフラクタルっぽくなります。
Wikipediaいわく「あらゆる記数法の中で最も美しい」とも言われるそうですが、
使い道は無いようです。
まぁ、「数学的な美しさ」というものは大抵実用性とは噛み合わないものです。(例えば美しい等式として有名なという式は、定数だけで構成された式なので実用性はほとんどありません。)
-1+i進法
-1+i進法は、仮数を{0,1}、底を-1+iとする記数法です。
例えば、-1+i進法で"11.011"と表記される数を10進数に直すと以下のようになります。
-1+i進法での10桁以下の整数を複素平面上にプロットすると以下のようになります。
「ツインドラゴン」というフラクタル図形が現れました。
10進法で(aとbは整数)と表される全ての複素数は「ガウス整数」と呼ばれ、-1+i進法における整数全体の集合はガウス整数全体の集合と一致します。
底をマイナスにしてみる
Wikipediaの「広義の記数法」のページには、-2進法だけでなく「底を-3、仮数を{0,1,2}とする記数法」が載っています。
では、-2進法と-3進法が存在するのならば、-10進法があってもよいのではないでしょうか?
というわけで、「底を-10、仮数を{0,1,2,3,4,5,6,7,8,9}とする記数法」について考えてみます。
グラフにしてもあまり面白くないので、九九表を作ってみました。
凶悪ですね。
よく見れば規則性があるのはわかりますが、小学生にこれの丸暗記を強いるのは何らかの罪に問われそうです。
ちなみに、「下1桁が5の倍数なら5の倍数」「桁和が3の倍数なら3の倍数」といった10の倍数の性質や、「121、144、169は平方数」という一般の記数法の性質の一部はこの記数法でも成り立っています。
仮数をずらしてみる
平衡3進法は「3進法の仮数の2を-1にずらした記数法」と解釈することができます。
では、他のずらし方をするとどうなるのでしょうか?
まず、2を-2に置き換えた「{0,1,-2|3}記数法」について考えます。
とりあえず、この記数法における2桁以下の整数を計算してみます。
何ということでしょう、となり、1が2回出てきてしまっています。
Wikipediaいわく、同じ整数に対して複数の表記があるような記数法は「冗長な記数法」と呼ばれるそうです。
正確な意味合いはともかく、「冗長」という評価はあまり気持ちのいいものではないので、別のパターンを試します。
絶対値が5以下の整数について{0,1,|3}記数法を総当たりして、冗長かどうかを調べたところ、以下のようになりました。
- 冗長:
- 冗長でない:
どうやら、冗長にならないのはを3で割った余りが2である場合のみで、それ以外は冗長になるようです。
また、1をずらす場合も同様で、3で割った余りが1のところにずらせば冗長にならないようです。
例えば{0,2,3|3}記数法は冗長で、{0,2,4|3}は冗長ではありません。
ただし、{0,2,4|3}記数法には冗長性よりも致命的な欠点があります。
{0,2,4|3}記数法における整数には、奇数が含まれていません。
今まで紹介してきた記数法での整数の値域は「非負整数全体」「整数全体」「ガウス整数全体」「アイゼンシュタイン整数全体」等のキリのいい(?)集合になっていましたが、こんな風に変則的になることもあります。*3
複素数を使ってみる
複素数を表す記数法を作るときは、実数のときとは少し勝手が違います。
まず、仮数の個数が違います。
実数の場合、底がのときは仮数は個でしたが、を底とする複素記数法の仮数は個です。
例えば底がの場合、なので仮数は5個必要になります。
また、仮数を3個持つ記数法を作りたい場合、底の絶対値はでなければなりません。
仮数の組み合わせを(冗長にならないように)ゼロから決めるのは一筋縄ではいきませんが、既存の組み合わせに対して実数でやったような「ずらし」を行うことならできます。
例えば{0,1,-1,i,-i|2+i}記数法では、iを2+2iや1-iに変更することができます。
どうやら、とを仮数に含まれる値、を底とするとき、「をに変える」というずらし方をすると上手くいくようです。*4
ここに、ある問題を抱えた記数法がありました。
この記数法が抱える問題、それは・・・
整数をプロットして現れるのは、なんとただの正方形。
実用性のかすかな匂いを除けば、そこには何の魅力も存在しません。
そんな記数法が匠の手によって・・・
なんということでしょう!
仮数を1つ変えるだけで、何の特徴もない正方形が活き活きとしたツインドラゴンに生まれ変わったではありませんか!
さらに、匠の気遣いはこれだけでは終わりません。
1+iを別の位置に移動させると・・・?
見たこともないフラクタル図形に早変わり!
これには依頼主のガウス整数さんも、思わず笑顔がこぼれました。