偽計数学妨害罪

うるせぇ、こっちは遊びで数学やってんだよ

新しい記数法を作ろう

皆さ~ん!


f:id:Hassium277:20201101225122j:plain


10進法 使ってますか?



f:id:Hassium277:20201101225133j:plain























f:id:Hassium277:20201115201856p:plain:w500

※元ネタ:https://www.youtube.com/watch?v=J1chrWQgZEU


こんにちは、108Hassiumです。


以前、こんなツイートを見ました。



記数法というのは文字通り「数を表す方法」のことで、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の以下のページには、上記のものの他にもたくさんの変則的な記数法が載っています。


ja.wikipedia.org


これらの存在を知り、私もオリジナルの記数法を作ってみたくなりました。


なお、作成する目的は存在しません。


Wikipediaにもこんな記述があります。


f:id:Hassium277:20201108221323p:plain


実用性なんていらないんです。

既存の記数法

新しいものを紹介する前に、既存のものを先に紹介しておきます。

-2進法

  • 2進法は、通常の2進数の底を2から-2に変えた記数法です。


例えば、-2進法で"11.011"と表記される数を10進数に直すと以下のようになります。


1×(-2)^1+1×(-2)^0+0×(-2)^{-1}+1×(-2)^{-2}+1×(-2)^{-3}

=-2+1+0.25-0.125=-0.875


-2進法では、負符号を使わずに任意の実数を表すことができます。


ちなみに、「-2進法での10桁以下の整数」を2進数と同じ順序で並べたものをグラフにすると以下のようになります。


f:id:Hassium277:20201114220735p:plain


フラクタルっぽいギザギザになります。

平衡3進法

平衡3進法は、3進法の仮数を{0,1,2}から{-1,0,1}に変えた記数法です。


-1を\bar{1}と表記する場合、\bar{1}10\bar{1}と表記される数を10進数に直すと以下のようになります。


-1×3^3+1×9-1×3^0

=-27+9-1=-19


平衡3進法も、-2進法と同じく実数全体を表せる記数法です。


平衡3進法における7桁以下の整数をグラフにすると以下のようになります。(\bar{1}を3進法での2に対応させています。)


f:id:Hassium277:20201114223927p:plain


こちらもフラクタルっぽくなります。


Wikipediaいわく「あらゆる記数法の中で最も美しい」とも言われるそうですが、


f:id:Hassium277:20201114225227p:plain


使い道は無いようです。


まぁ、「数学的な美しさ」というものは大抵実用性とは噛み合わないものです。(例えば美しい等式として有名なe^{i\pi}+1=0という式は、定数だけで構成された式なので実用性はほとんどありません。)

-1+i進法

-1+i進法は、仮数を{0,1}、底を-1+iとする記数法です。


例えば、-1+i進法で"11.011"と表記される数を10進数に直すと以下のようになります。


1×(-1+i)^1+1×(-1+i)^0+0×(-1+i)^{-1}+1×(-1+i)^{-2}+1×(-1+i)^{-3}

=-1+i+1+0.5i+0.25-0.25i=0.25+0.25i


-1+i進法での10桁以下の整数を複素平面上にプロットすると以下のようになります。


f:id:Hassium277:20201114235831p:plain


「ツインドラゴン」というフラクタル図形が現れました。


10進法でa+bi(aとbは整数)と表される全ての複素数ガウス整数」と呼ばれ、-1+i進法における整数全体の集合はガウス整数全体の集合と一致します。

アイゼンシュタイン記数法

アイゼンシュタイン記数法は、底を-2、仮数を{0,1,\omega,\omega^2}とする記数法です。


\omegaというのは、x^3=1という方程式の解の一つで、\frac{-1+\sqrt{3}i}{2}と表される複素数です。


アイゼンシュタイン記数法での10桁以下の整数を複素平面上にプロットすると以下のようになります。


f:id:Hassium277:20201115144738p:plain


アイゼンシュタイン記数法で整数として表せる複素数は、「アイゼンシュタイン整数」と呼ばれます。

{0,1,-1,i,-i|2+i}記数法

Wikipediaでは、「底を2+i、仮数を{0,1,-1,i,-i}とする記数法」というものも載っています。


この記数法には名前がついていないようなので、この記事では「{0,1,-1,i,-i|2+i}記数法」と呼ぶことにします。


{0,1,-1,i,-i|2+i}記数法における5桁以下の整数を複素平面上にプロットすると以下のようになります。


f:id:Hassium277:20201115225737p:plain


{0,1,-1,i,-i|2+i}記数法は-1+i進法と同じくガウス整数を表せる記数法ですが、複素平面上での挙動は全く違うものになります。




さて、次はこれらを参考にして新しい記数法を作ってみましょう。

底をマイナスにしてみる

Wikipediaの「広義の記数法」のページには、-2進法だけでなく「底を-3、仮数を{0,1,2}とする記数法」が載っています。


では、-2進法と-3進法が存在するのならば、-10進法があってもよいのではないでしょうか?


というわけで、「底を-10、仮数を{0,1,2,3,4,5,6,7,8,9}とする記数法」について考えてみます。


f:id:Hassium277:20201115154036p:plain


グラフにしてもあまり面白くないので、九九表を作ってみました。


f:id:Hassium277:20201115160157p:plain


凶悪ですね。


よく見れば規則性があるのはわかりますが、小学生にこれの丸暗記を強いるのは何らかの罪に問われそうです。


ちなみに、「下1桁が5の倍数なら5の倍数」「桁和が3の倍数なら3の倍数」といった10の倍数の性質や、「121、144、169は平方数」という一般の記数法の性質の一部はこの記数法でも成り立っています。

仮数をずらしてみる

平衡3進法は「3進法の仮数の2を-1にずらした記数法」と解釈することができます。


では、他のずらし方をするとどうなるのでしょうか?


まず、2を-2に置き換えた「{0,1,-2|3}記数法」について考えます。


とりあえず、この記数法における2桁以下の整数を計算してみます。

  • 00_3=0
  • 01_3=1
  • 0\bar{2}_3=-2
  • 10_3=3
  • 11_3=4
  • 1\bar{2}_3=1
  • \bar{2}0_3=-6
  • \bar{2}1_3=-5
  • \bar{2}\bar{2}_3=-8


何ということでしょう、01_3=1\bar{2}_3=1となり、1が2回出てきてしまっています。


Wikipediaいわく、同じ整数に対して複数の表記があるような記数法は「冗長な記数法」と呼ばれるそうです。


正確な意味合いはともかく、「冗長」という評価はあまり気持ちのいいものではないので、別のパターンを試します。


絶対値が5以下の整数nについて{0,1,n|3}記数法を総当たりして、冗長かどうかを調べたところ、以下のようになりました。

  • 冗長:n=-5,-3,-2,0,1,3,4
  • 冗長でない:-4,-1,2,5


どうやら、冗長にならないのはnを3で割った余りが2である場合のみで、それ以外は冗長になるようです。


また、1をずらす場合も同様で、3で割った余りが1のところにずらせば冗長にならないようです。


例えば{0,2,3|3}記数法は冗長で、{0,2,4|3}は冗長ではありません。


ただし、{0,2,4|3}記数法には冗長性よりも致命的な欠点があります。

  • 00_3=0
  • 02_3=2
  • 04_3=4
  • 20_3=6
  • 22_3=8
  • 24_3=10
  • 40_3=12
  • 42_3=14
  • 44_3=16


{0,2,4|3}記数法における整数には、奇数が含まれていません。


今まで紹介してきた記数法での整数の値域は「非負整数全体」「整数全体」「ガウス整数全体」「アイゼンシュタイン整数全体」等のキリのいい(?)集合になっていましたが、こんな風に変則的になることもあります。*3

複素数を使ってみる

複素数を表す記数法を作るときは、実数のときとは少し勝手が違います。


まず、仮数の個数が違います。


実数の場合、底がnのときは仮数|n|個でしたが、zを底とする複素記数法の仮数|z|^2個です。


例えば底がz=2+iの場合、|z|^2=2^2+1^2=5なので仮数は5個必要になります。


また、仮数を3個持つ記数法を作りたい場合、底の絶対値は\sqrt{3}でなければなりません。

f:id:Hassium277:20201118234157p:plain
仮数が3個である複素記数法の1つ、{0,1,\frac{1+\sqrt{3}i}{2}\sqrt{3}i}記数法における7桁以下の整数


仮数の組み合わせを(冗長にならないように)ゼロから決めるのは一筋縄ではいきませんが、既存の組み合わせに対して実数でやったような「ずらし」を行うことならできます。


例えば{0,1,-1,i,-i|2+i}記数法では、iを2+2iや1-iに変更することができます。


f:id:Hassium277:20201119003306p:plain


どうやら、ab仮数に含まれる値、zを底とするとき、aa+bzに変える」というずらし方をすると上手くいくようです。*4










ここに、ある問題を抱えた記数法がありました。


f:id:Hassium277:20201117231532p:plain


この記数法が抱える問題、それは・・・


f:id:Hassium277:20201117201217p:plain


整数をプロットして現れるのは、なんとただの正方形。


実用性のかすかな匂いを除けば、そこには何の魅力も存在しません。


そんな記数法が匠の手によって・・・


f:id:Hassium277:20201117231035p:plain





f:id:Hassium277:20201117231838p:plain


なんということでしょう!


仮数を1つ変えるだけで、何の特徴もない正方形が活き活きとしたツインドラゴンに生まれ変わったではありませんか!


さらに、匠の気遣いはこれだけでは終わりません。


f:id:Hassium277:20201117234339p:plain


1+iを別の位置に移動させると・・・?


f:id:Hassium277:20201117235115p:plain


見たこともないフラクタル図形に早変わり!


これには依頼主のガウス整数さんも、思わず笑顔がこぼれました。

*1:各桁に使う数のこと。10進法での{0,1,2,3,4,5,6,7,8,9}、2進法での{0,1}にあたる。

*2:10進法での10、2進数での2のこと。

*3:実は{0,2,4|3}記数法の「非負偶数全体」という値域はまだわかりやすい方で、{-4,0,1|3}とかは本当に訳がわからないことになる。

*4:先程の例では2+2iはb=1、1-iはb=-iに対応する。