なかなか正確に説明しているものを見かけない.
書籍にはあるはずなのだが,絶版の上に,失念したので紹介できない><
仕方がないので,コンピュータが何故2進法になったのかを説明したいと思う.
これはオレの大学生活で得た,CS分野で最高級の知識だ.
「これで最高級とは片腹痛いわ!」と言わないでください><
ヘタレですから.
まず始めに.
「電子回路のON(H)とOFF(L)に対応させやすいから2進法を選んだ」のではありません.
これは結果であり,理由ではありません.
「何故2進法か?」という疑問に対する十分な説得力に欠けます.
前提.
「コンピュータを設計・製造するに辺り,必要な素子数を最小にしたい」
ここを前提として,原点として始めないと,コンピュータは2進法になりません.
コスト度外視で行けば,人間が分かりやすいように10進法を採用すれば良かったわけで.
そこで,以下のように考える.
・r進法n桁の数値の組をN
・必要な素子数をM
とすれば,以下の方程式を導ける.
式(1)
本題.
式(1)のNに対して,両辺の対数を取る.
式(2)
式(2)をnについて解く.
式(3)
さて,式(3)を式(1)のMに代入する.
式(4)
ここで,素子数Mを最小にするためには,式(4)をrで微分した結果が0となればよい.
式(5)
式(5)より,つまり式(6)が導かれる.
式(6)
結論.
式(6)より,
式(7)
となり,素子数Mを最小とするためにはe進法が最適であることが分かる.
ここで,eは自然対数の底であり,
式(8)
である.
これに最も近い整数である3進法を用いるのが設計思想からは最適だが,
3値素子のコストよりも2値素子のコストの方が圧倒的に優れていたため,2進法が採用された.