バランスのとれた三元

平衡三進法は、各桁が-101 の値を持つ、バランスのとれた符号付き数字表現を使用する三進法の記数法(つまり、3の数字)です。これは、各桁が0、1、2の値を持つ標準的な(不平衡)三進法とは対照的です。平衡三進法では、別個のマイナス符号を使用せずにすべての整数を表すことができます。つまり、数値の先頭の非ゼロ桁の値は、その数値自体の符号を持ちます。平衡三進法は、非標準の位置記数法の例です。これは初期のコンピューターで使用されており[1] 、バランスパズルを解くのにも使用されていました[2]

バランスト3進法の3桁を表す記号は、出典によって異なる。この記事では、マイナス記号と1を合字にしたようなTが-1を表し、01はそれぞれそれ自身を表す。他には、「-」と「+」をそれぞれ-1と1を表すのに使用したり、円の中にマイナス記号を描いたギリシャ文字の シータ(Θ)を使って-1を表すといった表記法もある。セトゥンコンピュータに関する出版物では、-1は1をひっくり返した形で表されている。1「」[1]

平衡三進法は、マイケル・スティフェルの著書『積分算術』(1544年)に早くも登場している。 [3]また、ヨハネス・ケプラーレオン・ラランヌの著作にも登場する。他の基数における関連する符号付き数字体系については、ジョン・コルソンジョン・レスリーオーギュスタン=ルイ・コーシー、そしておそらく古代インドのヴェーダにも言及されている。[2]

意味

を記号グリフまたは文字とも呼ばれる)の集合とします記号はの代わりに使用されることもあります。整数値関数を次のよう に 定義します。

[4]

ここで、右辺は通常の値を持つ整数です。この関数は、整数値が記号/グリフにどのように割り当てられるかを厳密かつ形式的に確立するものです。この形式の利点の一つは、「整数」の定義(それがどのように定義されるかに関わらず)が、それらを表記/表現するための特定のシステムと混同されないことです。このようにして、これら2つの異なる(しかし密接に関連している)概念は分離されています。

この集合と関数を組み合わせることで、平衡三進法と呼ばれる平衡符号付き数字表現が形成されます。これは整数と実数を表すのに使用できます。

三項整数評価

を のクリーネプラスとします。これは、1つ以上の記号(その数字と呼ばれる)の有限長の連結文字列の集合です。ここでは負でない整数で、すべての数字はから取られます。 の始まり記号(右側)、終わりは記号(左側)、長さは です三項評価は、すべての文字列に整数 を 割り当てることによって定義される関数です。

文字列は整数を表す( に関して)。値はで表記されることもある。 写像は射影的だが単射的ではない。なぜなら、例えば、ただし、すべての非ゼロ整数は、 の下で、記号 で(左側に)終わらない表現を 1 つだけ持つ。つまり、

が満たされる場合:

これは、 が一種の再帰関係を満たすことを示しています。この再帰関係の初期条件は で、空文字列です。

これは、すべての文字列に対して

言葉で言えば、先頭の 記号 (2 つ以上の記号を含む文字列の左側) は結果の値に影響を与えません。

次の例は、 のいくつかの値を計算する方法を示しています。ここで (前と同じように) すべての整数は 10 進数 (基数 10) で記述され、 のすべての要素は単なる記号です。

そして上記の再帰関係を用いると

他の表現との間の変換

10進数への変換

平衡三進法では、小数点からn左にある数字の値は、その数字と3nの積です。これは、10進法と平衡三進法を変換する際に便利です。以下では、平衡三進法を表す文字列に接尾辞bal3を付けます。例えば、

10 bal3 = 1 × 3 1 + 0 × 3 0 = 3 dec
10𝖳 bal3 = 1 × 3 2 + 0 × 3 1 + (−1) × 3 0 = 8 dec
−9小数点= −1 × 3 2 + 0 × 3 1 + 0 × 3 0 = 𝖳00 bal3
8 dec = 1 × 3 2 + 0 × 3 1 + (-1) × 3 0 = 10𝖳 bal3

同様に、基数点の右側の最初の桁は 3 −1 = 1/3、2番目の場所は 3 −2 = 1/9など。例えば、

2/3小数点以下= −1 + 1/3 = −1 × 3 0 + 1 × 3 −1 = 𝖳.1 bal3 .
12月バル3拡大
000
11+1
21𝖳+3−1
310+3
411+3+1
51𝖳𝖳+9−3−1
61𝖳0+9−3
71𝖳1+9−3+1
810𝖳+9−1
9100+9
10101+9+1
1111𝖳+9+3−1
12110+9+3
13111+9+3+1
12月バル3拡大
000
−1𝖳−1
−2𝖳1−3+1
−3𝖳0−3
−4𝖳𝖳−3−1
−511−9+3+1
−610−9+3
−711−9+3−1
−8𝖳01−9+1
−900−9
−100円−9−1
−11𝖳𝖳1−9−3+1
−120円−9−3
−13𝖳𝖳𝖳−9−3−1

整数は、一の位の数字が 0 の場合にのみ 3 で割り切れます。

バランスの取れた3進整数の偶奇性は、すべての3進数の和の偶奇性をチェックすることで確認できます。この和は整数自体と同じ偶奇性を持ちます。

平衡三進法は、小数が基数点の右側に書かれるのと同様に、分数にも拡張することができる[5]

小数点−0.9−0.8−0.7−0.6−0.5−0.4−0.3−0.2−0.10
バランスのとれた三元法0101. 1100011月11日0. 𝖳または 𝖳. 10. 𝖳𝖳110. 𝖳0100. 11𝖳0. 0𝖳010
小数点0.90.80.70.60.50.40.30.20.10
バランスのとれた三元法1. 0𝖳011. 11月1. 𝖳0101. 𝖳𝖳110. 1または 1. 𝖳0. 11𝖳𝖳0. 10𝖳00. 1𝖳10.010𝖳0

10進数や2進数では、整数値と端数小数部は複数の表現方法があります。例えば、1/10 = 0.1 = 0.1 0 = 0.0 9 . そして、1/2 = 0.1 2 = 0.1 0 2 = 0.0 1 2。三元分数のつり合いの取れた数も複数の表現方法があります。例えば、1/6 = 0.1 𝖳 bal3 = 0.0 1 bal3。確かに、10進数や2進数では、基数点の右端にある無限の0を省略して、整数や端数のある小数を表現することができます。しかし、バランスの取れた3進数では、基数点の右端にある無限の-1を省略して、整数や端数のある小数を表現することはできません。

ドナルド・クヌース[6]は、バランスのとれた3進法では切り捨てと四捨五入は同じ演算であり、全く同じ結果をもたらす(他のバランスのとれた数値システムと共有される性質)ことを指摘した1/2⁠ は例外ではありません。2つの等しく有効な表現と2つの等しく有効な切り捨てがあります。0. 1(0に丸め、0に切り捨て)と1. 𝖳(1に丸め、1に切り捨て)です。奇数基数の場合、偶数基数とは異なり、 2回の丸めは最終精度への直接の丸めと等価です。

基本的な演算(加算、減算、乗算、除算)は通常の3進法と同じように行われます。2の乗算は、ある数にそれ自身を加算するか、a-trit-leftshift した後にそれ自身を減算することで実行できます。

バランスの取れた 3 進数の算術シフト左は、3 の (正の整数) 累乗と同等です。また、バランスの取れた 3 進数の算術シフト右は、3 の (正の整数) 累乗による除算と同等です。

分数との変換

分数バランスのとれた三元
11
1/20.11. 𝖳
1/30.1
1/40. 1𝖳
1/50. 1𝖳1
1/60.0 10.1 𝖳
1/70. 0110𝖳𝖳
1/80.01
1/90.01
1/100.010𝖳
分数バランスのとれた三元
1/110. 01𝖳11
1/120.0 1𝖳
1/130.01𝖳
1/140. 01𝖳0𝖳1
1/150.0 1𝖳𝖳1
1/160. 01𝖳𝖳
1/170. 01𝖳𝖳𝖳10𝖳0𝖳111𝖳01
1/180.00 10.01 𝖳
1/190. 001111010010000
1/200.0011

循環平衡三進数を分数に変換することは、循環小数を変換することに似ています。例えば、(111111 bal3 = ( 3 6 − 1/3 − 1 ) 12月):

不平衡三進法からの変換

不平衡 3 進法は、次の 2 つの方法で平衡 3 進法表記に変換できます。

  • 最初の非ゼロのトリットにキャリー付きで1トリットずつ加算し、次に同じトリットからボローなしで1トリットずつ減算します。例えば、
    021 3 + 11 3 = 102 3 , 102 3 − 11 3 = 1T1 bal3 = 7 dec .
  • 三進法に2がある場合は、1Tに変換します。例えば、
    0212 3 = 0010 bal3 + 1T00 bal3 + 001T bal3 = 10TT bal3 = 23 dec
バランスの取れた論理署名なし
1真実2
0未知1
T間違い0

三進法の3つの値が未知真であり、これらがT、0、1としてバランスのとれた三進法に、また0、1、2として従来の符号なし三進法にマッピングされると、バランスのとれた三進法はオフセット二進法に類似したバイアス数体系とみなすことができます。三進法の数がn個のトリットを持つ場合、バイアスb

これは、従来の形式またはバイアス形式のいずれかですべて1として表されます。[7]

その結果、これらの2つの表現をバランスのとれた3進数と符号なし3進数に使用すると、符号なしn個の正の3進数値はバイアスbを加算することでバランスのとれた形式に変換でき、正のバランスのとれた数はバイアスbを減算することで符号なし形式に変換できます。さらに、xy がバランスのとれた数である場合、従来の符号なし3進数演算で計算すると、それらのバランスのとれた和はx + ybになります。同様に、xy が従来の符号なし3進数である場合、バランスのとれた3進数演算で計算すると、それらの和はx + y + bになります。

任意の整数基数から平衡三進数への変換

次の式を使用して、バランスのとれた 3 進数に変換できます。

どこ、

a n a n −1 ... a 1 a 0 . c 1 c 2 c 3 ... は元の数値システムでの元の表現です。
bは元の基数です。10進数から変換する場合、bは 10 になります。
a kc kは、それぞれ小数点の左と右のk桁の数字です。

例えば、

−25.4 dec = −(1T×101 1 + 1TT×101 0 + 11×101 −1 ) = −(1T×101 1 + 1TT×101 0 + 11×101 T ) = −(1T×101 + 1TT + 11× 0.010T ) = −(1T1T + 1TT + 0.11TT ) = −10T1. 11TT = T01T. TT11
1010.1 2 = 1T 10 + 1T 1 + 1T −1 = 1T 10 + 1T 1 + 1T T = 10T + 1T + 0.1 = 101. 1

加算、減算、乗算、除算

以下に、1つのトリットの加算、減算、乗算、除算の表を示します。減算と除算は可換ではありません。これらの演算では、最初の被演算子は表の左側に、2番目の被演算子は表の上部に示されます。例えば、1 − T = 1T の答えは、減算表の左下隅にあります。

追加
+T01
TT1T0
0T01
1011T
減算
T01
T0TT1
010T
11T10
乗算
×T01
T10T
0000
1T01
分割
÷T1
T1T
000
1T1

マルチトリット加算と減算

多項式の加減算は、2進法と10進法の加減算に似ています。3進法ごとに加減算し、必要に応じて繰り上がりを加算します。例えば、

 1TT1TT.1TT1 1TT1TT.1TT1 1TT1TT.1TT1 1TT1TT.1TT1 + 11T1.T − 11T1.T − 11T1.T → + TT1T.1 ______________ _______________ _______________ 1T0T10.0TT1 1T1001.TTT1 1T1001.TTT1 + 1T + T T1 + T T1 ______________ ________________ ________________ 1T1110.0TT1 1110TT.TTT1 1110TT.TTT1 + T + T 1 + T 1 ______________ ________________ ________________ 1T0110.0TT1 1100T.TTT1 1100T.TTT1

マルチトリット乗算

マルチトリット乗算は、2 進数と 10 進数の乗算に類似しています。

 1TT1.TT × T11T.1 _____________ 1TT.1TT 1を掛ける T11T.11 Tを掛ける 1TT1T.T 1を掛ける 1TT1TT 1を掛ける T11T11 掛け算 T _____________ 0T0000T.10T

マルチトリット分割

平衡三進法の除算は、二進法と十進法の除算に類似しています。

しかし、0.5 dec = 0.1111... bal3または 1.TTTT... bal3となります。被除数が除数の正負の半分を超える場合、商のトリットは1またはTでなければなりません。被除数が除数の正負の半分の間にある場合、商のトリットは0です。商のトリットを設定する前に、被除数の大きさを除数の半分の大きさと比較する必要があります。例えば、

 1TT1.TT商0.5 × 除数 T01.0 _____________  除数 T11T.1 ) T0000T.10T 被除数  T11T1 T000 < T010、セット1 _______ 1T1T0 1TT1T 1T1T0 > 10T0、Tを設定 _______ 111T 1TT1T 111T > 10T0、Tを設定 _______ T00.1 T11T.1 T001 < T010、セット1 ________ 1T1.00 1TT.1T 1T100 > 10T0、Tを設定 ________ 1T.T1T 1T.T1T 1TT1T > 10T0、Tを設定 ________ 0

別の例として、

 1TTT 0.5 × 除数 1T _______ 約数 11 )1T01T 1T = 1T だが 1T.01 > 1T なので 1 とする 11 _____ T10 T10 < T1、Tを設定 TT ______ T11 T11 < T1、Tを設定 TT ______ TT TT < T1、Tを設定 TT ____ 0

別の例として、

 101.TTTTTTTTTT... または 100.111111111... 0.5 × 除数 1T _________________ 約数 11 )111T 11 > 1T、セット 1 11 _____ 1 T1 < 1 < 1T、0を設定 ___ 1T 1T = 1T、トリット終了、1.TTTTTTTTTT... または 0.11111111... を設定します

平衡三進法では、余りの比較を必要とせず、規則に従って直接演算する、より単純な除算法があります。この方法は、ドナルド・クヌースの商試行法に由来しますが、この方法は完璧ではありません。その後、他の学者によって改良され、半閉区間の判断を完全に放棄し、代わりに各ラウンドの除算の余りの最上位ビットが 0 であるかどうかを条件として、除算ラウンドが終了したかどうかを判定するようになりました。この方法は、二重試算商法と名付けられました。その核となるロジックは、被除数を 2 つのベクトル (p と s) に分割することです。p の桁数は最大で除数 q と同じであり、s は残りの桁のベクトルです。次に、規則 (2 つの正または負の場合は正の商、1 つの正と 1 つの負の場合は負の商、その他は 0) に従って、各ラウンドの除算で商が最大で 1 回または 2 回減算されます。一度減算しても余り p の最上位ビットが 0 でない場合は、再度減算する必要があります。余り p の最上位ビットが 0 であれば、除算のラウンドは終了しており、そのビットは二重商です。値は 2 倍され、結果はレジスタ r に渡されます。次に、余り p を 1 ビット左にシフトし、前のラウンドの除数の最上位ビット (すでに 0) を破棄し、s の 1 ビットを引き出してそれを補い、新しい余り p を取得して次のラウンドに進みます。結果 r (3 倍に拡大) は右に 1 ビットシフトされ、0 が補われます。次に、s がなくなると、結果 r と被除数 p で最終的な商と余りが構成されます。

 + ++0- ++ _____________ _______ +0- )+0++0+ +- )+0+  -0+ -+ ____________ ______ 0+-+ 0++ -0+ -+ ____________ ______ 00-0 +- 000 -+ ____________ ______ -0+ 0 +0- ____________ 0+ と ++ を加算すると、商は +-- になります。 0

平方根と立方根

平衡型 3 進数で平方根を抽出するプロセスは、10 進数や 2 進数の場合と同様です。

割り算と同様に、まずは割る数の半分の値を確認する必要があります。例えば、

 1. 1 1 T 1 TT 0 0 ... _________________________ √1T 1<1T<11、セット1 − 1 _____ 1×10=10 1.0T 1.0T>0.10、セット1 1T0 −1.T0 ________ 11×10=110 1T0T 1T0T>110、セット1 10T0 −10T0 ________ 111×10=1110 T1T0T T1T0T<TTT0、Tを設定 100T0 −T0010 _________ 111T×10=111T0 1TTT0T 1TTT0T>111T0、セット1 10T110 −10T110 __________ 111T1×10=111T10 TT1TT0T TT1TT0T<TTT1T0、Tを設定 100TTT0 −T001110 ___________ 111T1T×10=111T1T0 T001TT0T T001TT0T<TTT1T10、Tを設定 10T11110 −T01TTTT0 ____________ 111T1TT×10=111T1TT0 T001T0T TTT1T110<T001T0T<111T1TT0、0を設定 − T リターン 1 ___________ 111T1TT0×10=111T1TT00 T001T000T TTT1T1100<T001T000T<111T1TT00、0を設定 − T リターン 1 _____________ 111T1TT00*10=111T1TT000 T001T00000T ...

バランスのとれた 3 進法での立方根の抽出は、10 進法や 2 進法での抽出と同様です。

割り算と同様に、まずは割る数の半分の値を確認する必要があります。例えば:

 1. 1 T 1 0 ... _____________________ ¹⁰√1T − 1 1<1T<10T、セット1 _______ 1.000 1×100=100 −0.100 100倍を借りて割り算をする _______ 1TT 1.T00 1T00>1TT、セット1 1×1×1000+1=1001 −1.001 __________ T0T000 11×100 − 1100 100×を借りて割り算をする _________ 10T000 TT1T00 TT1T00<T01000、Tを設定 11×11×1000+1=1TT1001 −T11T00T ____________ 1TTT01000 11T×100 − 11T00 100×を借りて割り算をする ___________ 1T1T01TT 1TTTT0100 1TTTT0100>1T1T01TT、セット1 11T×11T×1000+1=11111001 − 11111001 ______________ 1T10T000 11T1×100 − 11T100 100×を借りて割り算をする __________ 10T0T01TT 1T0T0T00 T01010T11<1T0T0T00<10T0T01TT、0を設定 11T1×11T1×1000+1=1TT1T11001 − TT1T00 100×を返す _____________ 1T10T000000 ...

したがって、32 dec = 101T bal3 = 1.259921 dec = 1.1T1 000 111 001 T01 00T 1T1 T10 111 bal3

無理数

他の整数基数と同様に、代数的無理数と超越数は無限に存在したり、重複したりしません。例えば、

小数点バランスのとれた三元

の平衡三元展開はOEISではA331313 として与えられ、 の平衡三元展開はA331990 として与えられています。


アプリケーション

コンピュータ設計において

手術台

コンピュータの黎明期には、ソ連の実験的なコンピュータが2進法ではなく平衡3進法を採用していくつか作られました。最も有名なのは、ニコライ・ブルセンツォフセルゲイ・ソボレフによって作られたセトゥンです。この記法は、従来の2進法や3進法に比べて多くの計算上の利点があります。特に、プラスマイナスの一貫性により、多桁の乗算における桁上がり率が低下し、丸めと切り捨ての等価性により、小数点以下の丸めにおける桁上がり率が低下します。平衡3進法では、1桁の乗算表は1桁のまま桁上がりがなく、加算表は9つの項目のうち2つしか桁上がりがありません。一方、平衡3進法ではそれぞれ1つと3つの桁上がりがあります。クヌースは「おそらく、この記数法の対称性と単純な算術は、いつか非常に重要であることが証明されるだろう」と記しています[6]

平衡三進法の演算回路の複雑さは二進法に比べてそれほど大きくなく、与えられた数はその表現に必要な桁数が同じだけである。」[6]

最近では、人工ニューラルネットワークの高効率な低解像度実装のために、平衡三進数が提案されています。深層学習では、ニューラルネットワークは通常連続値(浮動小数点値)を使用しますが、量子化と二値化を研究することで、はるかに低い消費電力やメモリ要件で実行可能なニューラルネットワークを構築する研究が数多くあります。平衡三進数は、非常にコンパクトでありながら、興奮性/抑制性/ヌル活性化パターンを自然に表現できるため、ネットワークパラメータに使用することが提案されています。[8] [9]

バランスのとれた 3 進法は、それを使用する量子トリットおよび量子コンピューティング システムにとって、より自然な表現を提供することもできます。

その他のアプリケーション

すべての整数は平衡三進法で一意に表現できるという定理は、レオンハルト・オイラーによって形式冪級数の恒等式を正当化するために使われた[10]。

平衡三元法は、計算以外にも様々な用途があります。例えば、3の累乗ごとに1つの分銅を持つ古典的な2皿天秤は、2つの皿と天秤台の間で分銅を移動させることで、比較的重い物体を少ない分銅数で正確に計量できます。例えば、3の累乗から81までの累乗ごとに分銅を配置した場合、60グラムの物体(60 dec = 1T1T0 bal3)は、もう一方の皿に81グラムの分銅、別の皿に27グラムの分銅、別の皿に9グラムの分銅、別の皿に3グラムの分銅、そして別に用意した1グラムの分銅を載せることで、完全にバランスが取れます。

同様に、1¤、3¤、9¤、27¤、81¤の価値を持つ硬貨が存在する通貨システムを考えてみましょう。買い手と売り手がそれぞれ各種類の硬貨を1枚ずつしか持っていない場合、121¤までの取引が可能です。例えば、価格が7¤(7 dec = 1T1 bal3)の場合、買い手は1¤ + 9¤を支払い、お釣りとして3¤を受け取ります。

参照

参考文献

  1. ^ ab NA Krinitsky; GA Mironov; GD Frolov (1963). 「第10章 プログラム制御マシン Setun」. MR Shura-Bura (編). 『プログラミング』(ロシア語). モスクワ.{{cite book}}: CS1 maint: location missing publisher (link)
  2. ^ ab Hayes, Brian (2001)、「Third base」(PDF)American Scientist89(6):490–494doi:10.1511/2001.40.3268ヘイズ、ブライアン(2008年)『寝室の群論とその他の数学的転換』ファラー、ストラウス、ジルー、  179~ 200頁、ISBNに再録 9781429938570
  3. ^ Stifel、Michael (1544)、Arithmetica integra (ラテン語)、apud Iohan Petreium、p. 38
  4. ^ と は等式と の中に2回出現しますがこれらは同じものを表していません。右辺のと は整数を表しますが、の括弧内( に属する)は単なる記号として考えるべきでしょう。
  5. ^ Bhattacharjee, Abhijit (2006年7月24日). 「Balanced ternary」. 2009年9月19日時点のオリジナルよりアーカイブ。
  6. ^ abc ドナルド・クヌース(1997年)『コンピュータプログラミングの芸術』第2巻、アディソン・ウェズレー社、  195~ 213頁、 ISBN 0-201-89684-2
  7. ^ Douglas W. Jones、「Ternary Number Systems」、2013年10月15日。
  8. ^ Li, Fengfu (2022). 「三元重みネットワーク」. arXiv : 1605.04711 [cs.CV].
  9. ^ Ma, Shuming (2024). 「1ビットLLMの時代:大規模言語モデルはすべて1.58ビット」arXiv : 2402.17764 [cs.CL].
  10. ^ アンドリュース、ジョージ E. (2007)。 「オイラーの『De Partitio numerorum』」。アメリカ数学協会の会報。新しいシリーズ。44 (4): 561–573土井: 10.1090/S0273-0979-07-01180-9MR  2338365。
  • モスクワ国立大学における三元コンピュータの開発
  • 平衡三進法による分数の表現
  • 「三進法」、三進法と平衡三進法
  • 平衡三進法(十進整数から平衡三進法への変換機能を含む)
  • OEISシーケンスA182929(二項三角形をバランスのとれた三項リストに縮約したもの)
  • バランス型(符号付き)三進法 Archived 2016-03-03 at the Wayback Machine by Brian J. Shelburne (PDFファイル)
  • マーク・グラスカーによるトーマス・ファウラーの3進計算機
Retrieved from "https://en.wikipedia.org/w/index.php?title=Balanced_ternary&oldid=1317834575"