« 今日,新しく知ったこと | メイン | ついに判明!正体は"flexagon" »

コンピュータは何故2進法か? [ 教育 ]

なかなか正確に説明しているものを見かけない.
書籍にはあるはずなのだが,絶版の上に,失念したので紹介できない><
仕方がないので,コンピュータが何故2進法になったのかを説明したいと思う.
これはオレの大学生活で得た,CS分野で最高級の知識だ.
「これで最高級とは片腹痛いわ!」と言わないでください><
ヘタレですから.

まず始めに.
「電子回路のON(H)とOFF(L)に対応させやすいから2進法を選んだ」のではありません.
これは結果であり,理由ではありません.
「何故2進法か?」という疑問に対する十分な説得力に欠けます.


前提.
コンピュータを設計・製造するに辺り,必要な素子数を最小にしたい
ここを前提として,原点として始めないと,コンピュータは2進法になりません.
コスト度外視で行けば,人間が分かりやすいように10進法を採用すれば良かったわけで.
そこで,以下のように考える.

・r進法n桁の数値の組をN
・必要な素子数をM

とすれば,以下の方程式を導ける.

071212_eq1.png 式(1)


本題.
式(1)のNに対して,両辺の対数を取る.

071212_eq2.png 式(2)

式(2)をnについて解く.

071212_eq3.png 式(3)

さて,式(3)を式(1)のMに代入する.

071212_eq4.png 式(4)

ここで,素子数Mを最小にするためには,式(4)をrで微分した結果が0となればよい.

071212_eq5.png 式(5)

式(5)より,つまり式(6)が導かれる.

071212_eq6.png 式(6)


結論.
式(6)より,

071212_eq7.png 式(7)

となり,素子数Mを最小とするためにはe進法が最適であることが分かる.
ここで,eは自然対数の底であり,

071212_eq8.png 式(8)

である.
これに最も近い整数である3進法を用いるのが設計思想からは最適だが,
3値素子のコストよりも2値素子のコストの方が圧倒的に優れていたため,2進法が採用された.