三進法
[Wikipedia|▼Menu]
.mw-parser-output .hatnote{margin:0.5em 0;padding:3px 2em;background-color:transparent;border-bottom:1px solid #a2a9b1;font-size:90%}

「3進数」はこの項目へ転送されています。有理数を含む3進数については「p進数」をご覧ください。

三進法(さんしんほう)とは、3(てい、基(base)とも)とし、底のの和で数を表現する方法である。
概要

任意の正の数は次のように表すことが出来る。 a N 3 N + a N − 1 3 N − 1 + ⋯ + a 1 3 + a 0 + a − 1 3 + a − 2 3 2 + ⋯ {\displaystyle a_{N}3^{N}+a_{N-1}3^{N-1}+\cdots +a_{1}3+a_{0}+{a_{-1} \over 3}+{a_{-2} \over 3^{2}}+\cdots }

( am は0,1,2のどれか)このとき、 a N a N − 1 … a 1 a 0 . a − 1 a − 2 … {\displaystyle a_{N}a_{N-1}\ldots a_{1}a_{0}.a_{-1}a_{-2}\ldots }

と書くのが三進法である。
記数法
位取り

三進法では012の計三つの数字を用い、を10、を11…と表記する。三で桁上がりするので、「3」の字が使えるN進法は四進法以降、「3」の字が使えて「1/3」が割り切れるN進法は六進法以降となる。桁の増加も、三進法では、三の冪数で桁が一つ増える。以下の表に、二進法(底が2)、三進法(底が3)、六進法(底が2×3)、十進法(底が2×5)での各表記法の差異を掲載する。

数列の進み方(十八まで)二進法三進法六進法十進法
0000
1111
10222
111033
1001144
1011255
11020106
11121117
100022128
1001100139
10101011410
10111021511
11001102012
11011112113
11101122214
11111202315
100001212416
100011222517
100102003018

数列の進み方(十九以降)二進法三進法六進法十進法
100112013119
101002023220
101012103321
101102113422
101112123523
110002204024
110012214125
110102224226
1101110004327
100100110010036
110001121112149
110110200013054
1000000210114464
10100011000021381
110010010201244100

三進法の位取り桁三進法の位数二進数に換算三進数六進数に換算十進数に換算
整数第七位729の位101101100110000003213729
整数第六位243の位111100111000001043243
整数第五位81の位10100011000021381
整数第四位27の位1101110004327
整数第三位9の位1001100139
整数第二位3の位111033
整数第一位1の位1111
小数第一位1/3の位1/110.10.21/3
小数第二位1/9の位1/10010.010.041/9
小数第三位1/27の位1/110110.0010.0121/27
小数第四位1/81の位1/10100010.00010.00241/81

※ 位数は十進表記。
演算

三進法で記した、加算及び乗算の表は次のようになる。

加算+012
0012
11210
221011

乗算×012
0000
1012
20211

で割り切れない(= 奇数である)ため、三進法では 1/2 = 0.1111… となり、「1÷偶数」が全て割り切れない。三進法や五進法などの奇数進法は、1/2 が割り切れないため、そのどこかの桁で丸め(端数処理)を行おうとする時に、例えば六進法の 0.3 や十進法の 0.5 のような「二分すると同数」が起こらない、という特徴を持つ。さらに後述する平衡三進法には、ある桁で打ち切るだけで「一捨二入」の丸めになる、という特長を持つ。

しかし、二の次の数である三が底になっているので、「三分すると同数」が起こる、という特徴を持つ。これは、六進法の 0.2 や九進法の 0.3 などと同様である。

三進法の小数除算単位分数除数の素因数分解三進小数六進小数十進小数
1/220.1111…0.30.5
1/330.10.20.3333…
1/4220.0202…0.130.25
1/550.0121…0.1111…0.2
1/62×30.0111…0.10.1666…
1/770.010212…0.0505…0.142857…
1/8230.0101…0.0430.125
1/9320.010.040.1111…
1/102×50.0022…0.03333…0.1
1/11110.00211…0.0313452421…0.0909…
1/1222×30.00202…0.030.08333…
1/16240.0012…0.02130.0625
1/182×320.00111…0.020.05555…
1/2022×50.0011…0.01444…0.05
1/25520.00100201102212202112…0.01235…0.04
1/27330.0010.0120.037…
1/3622×320.000202…0.010.02777…
1/64260.0001021011122022…0.0032130.015625
1/81340.00010.00240.012345679…

※ 単位分数と除数の素因数分解は十進表記。
経済性

コンピュータなどの計算機械で、N進記数法で一桁を表現・記憶するコストがNに比例すると仮定する。すると、最大値Mまでを表現・記憶できるようにするためのコストは、一桁分のコストに必要な桁数を掛けたものとなり、具体的には N × logNM である。この値が極小になるのはNがネイピア数eの時であるが、e進法は通常の数の表現には全く適さない。前後の整数では、二進と四進の場合が同じで、三進の場合が若干だが小さな値となる。よって前述の仮定の下では三進法の採用が最も経済的ということになるが、三値素子といったようなものは、特に電子的には二値素子の扱いやすさとは比べるべくもなく、稀である。が、後述する平衡三進法を使っていたソ連のコンピュータ「Setun」など、全く例がないわけでもない。

以上の計算では、仮定としてN進の場合にはN個の素子が必要としているわけだが、実際には一つの素子で、二つの状態(オン・オフ)や三つの状態(実用例のある三値素子としては、二方向の磁化と無磁化など)のものを使うことが専らのため、そもそも仮定が実際とは異なる(十進法の計算機などで、十個の素子を使うものもないわけではないが、それではたいへんに効率が悪く、たいていは2状態の素子4個?6個をうまく利用して十種類の値を表現している)。
平衡三進法

重みを持つ各桁の値を負の側にも振る、平衡位取り記数法の最も単純な方式である(同様の考え方を拡張すれば、平衡五進法や平衡七進法が考えられる)。amの値を-1,0,1とする。位取り記数法の内に負数も含めて綺麗に表現できるという性質があり、ドナルド・クヌースのように「おそらく、あらゆる記数法の中で最も美しい」と言う者もいる[1][2]。しかし、二進法などと比べて応用も多くないため、ほとんど使われていない。ここでは-1を 1 ¯ {\displaystyle {\bar {1}}} と表示することとする。また、この表記法は天秤で「1g,3g,9g,27gの分銅を用いて1?40gの質量を量る方法」とも似ている。
平衡三進法の演算

平衡三進法では通常と若干異なる演算が必要である。加算、乗算の結果は次のようになる。

加算+ 1 ¯ {\displaystyle {\bar {1}}} 0 {\displaystyle 0} 1 {\displaystyle 1}
1 ¯ {\displaystyle {\bar {1}}} 1 ¯ 1 {\displaystyle {\bar {1}}1} 1 ¯ {\displaystyle {\bar {1}}} 0 {\displaystyle 0}
0 {\displaystyle 0} 1 ¯ {\displaystyle {\bar {1}}} 0 {\displaystyle 0} 1 {\displaystyle 1}
1 {\displaystyle 1} 0 {\displaystyle 0} 1 {\displaystyle 1} 1 1 ¯ {\displaystyle 1{\bar {1}}}

乗算× 1 ¯ {\displaystyle {\bar {1}}} 0 {\displaystyle 0} 1 {\displaystyle 1}
1 ¯ {\displaystyle {\bar {1}}} 1 {\displaystyle 1} 0 {\displaystyle 0} 1 ¯ {\displaystyle {\bar {1}}}
0 {\displaystyle 0} 0 {\displaystyle 0} 0 {\displaystyle 0} 0 {\displaystyle 0}
1 {\displaystyle 1} 1 ¯ {\displaystyle {\bar {1}}} 0 {\displaystyle 0} 1 {\displaystyle 1}

上の位に影響を及ぼすのは加算の2つだけである。二進と同様に乗算では上の位に影響を及ぼさない。減算は複雑そうに思えるが、加算の結果を知っていれば難しくない。減算では 1 ¯ {\displaystyle {\bar {1}}} と 1 {\displaystyle 1} を入れ替えたものを加算する方法も有効である。


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:20 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef