當我們在電腦上打開一個軟體,看一部電影,聽一首歌的時候,我們很難想象,這些東西都是由 0 和 1 這樣的二進制數字組成的,
但你有沒有好奇過?為什么計算機要用二進制呢?難道是因為它效率最高嗎?
但其實并非如此,理論上講,三進制計算機的效率要比二進制更高,甚至蘇聯也曾花費重金研究過它,那我們為什么沒有用上這種更高效的計算機呢?
大家好我是差評君,今天跟大家聊聊三進制計算機的故事 ~
二進制是最好的嗎?
進制,是一種人類智慧衍生的計數方式。
我們天生有十根手指,所以人類天然選擇了十進制,計票時常用的寫 “ 正 ” 字,也類似于五進制。而計算機的二進制是由 0 和 1 組成的,也就是逢二進一,借一當二。
不知道大家有沒有過疑問,為什么計算機沒有用更常見的進制,而偏偏選擇了二進制呢?畢竟計算機也是給人用的,非要轉化成一串長長的 0 和 1 ,不是很反人類嗎?
之前差評君也看過不少科普,大多都是用一句 “ 電腦只能看得懂 0 和 1 ” 就蒙混過關了,但其實最主要的原因是,計算機出生的年代,二進制是最容易實現的。
其實歷史上也曾出現過非二進制的電腦,比如 1945 年誕生的世界上第一臺通用計算機 ENIAC,就是一臺十進制電腦。
但,計算機是由邏輯電路組成的,而電路中通常只有兩個狀態 —— 開和關,這兩種狀態正好可以用 “ 1 ” 和 “ 0 ” 表示,
而 “ 1 ” 和 “ 0 ” 又恰好與邏輯運算中的 “ 對 ”( true ) 與 “ 錯 ”( false )對應,這才有了著名的馮.諾依曼結構,也讓二進制在計算機上大放異彩。
此后的幾十年,二進制計算機越來越先進,各方面的硬件也逐漸完善,現在你用的行動電話,電腦的顯卡,女神的照片,爆肝的游戲,靠的全是二進制,
但其實!二進制并不是效率最高的,理論上講,e 進制才是最高效的,
e 的大名叫自然常數,也叫歐拉數,是個大約為 2.71828 的無限不循環小數,溫馨提示:以上內容為高中數學知識點,不懂的同學把它當成和 π 一樣的東西就行。
那為啥說它的效率最高呢?先說說什么是效率,我們簡單理解就是,在表達相同資訊量的前提下,誰消耗的元件更少,誰的效率也就越高。
舉個例子,假如我們要用十進制表達從 0 到 999 的一千個數字,那就要用 0-9 的十個牌子,并且需要三組,一共也就是 30 個牌子,
如果用二進制來表示這 1000 個數字,那我們需要 10 組的 0 和 1,也就是 20 個牌子如果是三進制的話,需要 7 組的 0 、 1 、 2 ,也就是 21 個牌子,四進制的話,需要 5 組的 0 、 1 、 2 、 3 ,即 20 個牌子。……
我們以此類推可以算出每種進制需要用到的牌子數量,
誰用的牌子越少,也就表示誰的效率越高。
然后會發現,在表示 0-999 的問題上,二進制和四進制的效率是最高的。
但是,在這個過程中,每種進制或多或少都出現了 “ 資源浪費 ”,
比如說 10 位的 2 進制,也就是 2 的 10 次方,一共能表達 1024 個數字,已經幾乎用完了,但 7 位的 3 進制,一共能表達 2187 個數,也就是說在這個案例中,三進制比二進制能多表達 1163 個數,
我們在計算 “ 需要幾位數 ” 的時候是這么考慮的:
log 以 2 為底 1000 的對數約等于 9.97,我們向上取整,所以是 10 位數, 10*2=20,所以二進制需要 20 個牌子,log 以 3 為底 1000 的對數約等于 6.29,取整數是 7,7*3=21,所以三進制需要 21 個牌子,……
由此我們發現,這種算法會浪費很多資源,所以為了更準確的計算,我們假設需要的位數可以不是整數,也就不用向上取整。
于是,為了表示 M 個數,在 x 進制下,需要 x*logx^M 個牌子。
所以效率就可以表示成這樣一個公式:
E=M/x*logx^M=M/lnM*lnx/x
我們簡單求導一下就知道,f`( x ) = MlnM ( 1-lnx )
當 X = e 的時候,原函數取極大值!
如果用圖像表示原函數,大概就是這樣,這個點就是 e,
也就是說當 x 等于 e 的時候,效率 E 是最大的,
所以得出結論,理論上,e 進制的效率最高。
以上推導過程來自于知乎大佬 “ 白云龍 ”,我們想了很多個例子,可惜都沒有大佬這個 “ 倒計時 ” 的例子直觀。
ok,咱們前面也提過,e 大概是 2.71828,也就是說 “ 2.71828 進制 ” 是理論上最高效的進制。
但是 2.71828 進制是個什么鬼?我數數手指還得掰個 0.71828 根?
那還得是個整數,不然工程上就沒法實現了,而你看這個函數圖就知道,相比 2,3 的效率是更接近 e。
由此我們能得出結論,數據表達上,效率最高的是三進制,其次才是二進制,
但為什么咱們現在沒用上效率更高的三進制計算機呢?
這就不得不提到那個已經消失國家了。
平衡三進制和 Setun
蘇聯其實在五十多年前就發現了三進制在計算機上的優勢,1958 年,莫斯科國立大學部的計算機研究中心研制出了世界上第一臺三進制電子計算機 —— Сетунь( setun )。
Сетунь 計算機用的不是一般那種逢三進一的三進制,而是平衡三進制,也叫對稱三進制,
什么是平衡三進制呢,就是由 -1、0、1 構成的,對應的邏輯電路就是負電壓、零電壓和正電壓。
平衡三進制是一種很巧妙的設計,它所記錄的數字可以表達出全部整數。而且由于 -1 的引入,對負數就不必使用額外的負號了,而二進制是無符號數,不能直接表示負數。
說回 Сетунь 這臺計算機,雖然蘇聯早就看出了三進制的優秀,可一開始莫斯科大學部并沒有把這個項目當回事兒,只派了四個副博士和幾個剛畢業的學生來開發。
但沒想到這臺計算機在不同的室溫下都表現出驚人的可靠性和穩定性。
雖然我覺得以當時蘇聯還在電子管上狂奔的情況來看,Сетунь 應該是比不上美國同時代的二進制計算機的,但是和同期其它蘇聯能生產的計算機比,Сетунь 還是優勢很大的。
很快,蘇聯部長會議通過了批量生產Сетунь計算機的決議。不過工業部并不看好這臺機器,他們覺得這個經濟計劃外的玩意兒就是個科幻產物,
與此同時,大陸外的訂單卻像雪花般飛來,10 到 15 臺的年產量遠遠不夠應付市場需求,
奇怪的是工業部并沒有隨著訂單數量的增加而增加產量,相反,他們嚴重限制了生產進度,拒絕訂單,并在 1965 年完全停產,
是不是聽起來不可思議,其實原因并不復雜,Сетунь 的電子元件良品率極高,而且非常耐造,同時價格還很低,它的售價只有 27.5 萬盧布,創造了當時的最低記錄,而同期的計算機售價基本都在它的兩倍以上,
那臺在莫大計算中心的樣機整整運行了 17 年,除了在第一年更換了三個有缺陷的元器件之外,內部設備從來沒維修過,直到它被摧毀前的一刻都還能正常使用。
而蘇聯官僚停產了 Сетунь 之后,取而代之的是一種相同性能的二進制計算機,但價格卻貴出 2.5 倍,說白了,Сетунь 的生產讓蘇聯官僚少了大筆的財政撥款。
斷人財路如殺人父母,所以這臺三進制計算機就 “ 理所應當 ” 的成為了政治犧牲品,
雖然 Сетунь 最終只生產了五十臺,但從加里寧格勒到雅庫茨克,從阿什哈巴德到新西伯利亞,全蘇都能看到它的身影。
而且各地都對 Сетунь 的評價很高,大家認為它編程簡單,很適合用于工程計算、工業控制、計算機教學等等。
Сетунь 的成功經驗讓莫大決定不放棄這臺計算機,于是他們頂住壓力在 1970 年推出了 Сетунь 70 型計算機,而且還對應著二進制的 byte 創建了三進制字節 tryte。每個 tryte 由 6 個 trit 構成,約等于 9.5 個二進制的 bit。
但這個項目長期得不到上級的支持,最后也不得不無限期停滯,Сетунь 70 就此成了莫斯科大學部的絕唱,
再后來蘇聯解體,三進制計算機也跟著蘇維埃混入了歷史的塵埃,直到今天也沒有其他國家能夠復現它,
為什么現在沒有三進制計算機
雖說Сетунь證明了三進制計算機的可行性,但它沒能發展起來,政治原因并不是主要原因,
甚至可以說,三進制計算機的失敗,是一種歷史必然。
因為即使我們前面在數學上論證了三進制的效率,但也只停留在理論上,從理論到具體實現,經過的步驟太復雜了,因為比如說如果要做三進制計算機的話,就要用三種穩定狀態的材料,起碼二極管是用不了了。
而二進制只有 “ 0 ” 和 “ 1 ”,高低電壓就很好區分,就算有些誤差,計算機也可以識別出來,所以在穩定性上會遠遠高于三進制,在工程上也更容易實現。
所以三進制對效率的提升也許并沒有想象的那么美好。
既然它不夠穩定,又不能高效提升,工程上還難以實現。為了這么一點可能的紅利再從頭發展這種技術就顯得沒必要了,
反觀二進制的發展速度,早就快的沒影了。
這就好比你玩了好久的養成游戲,已經花了無數個 648,就算沒抽出版本之子,也很少有人從零開始玩小號吧。更別說是在越來越離不開計算機的今天,拋棄已經發展完善的二進制體系。
說點看得見的,要是沒了二進制,我們現有的硬件體系都要洗牌,大家的電腦行動電話等電子產品會直接變磚,這事兒聽起來也不現實吧。
它是歷史還是未來?
不過到了今天,隨著芯片的制程越來越小,馬上會碰到量子這個玄學領域,量子隧穿這樣的難題,我們可能要花非常多的精力,才可能提升一點點效率,就像開了等級上限的?游,二進制已經快滿級了,也許要開始開辟其他的路了。
而三進制,現在就正在電子計算機以外的形態上復活。
比如,本身電子計算機因為只有開關兩種基礎狀態,但是假如是光子計算機,就有光強、波長、相位、傳播方向和偏振五種狀態,上海大學部的金翊教授團隊就取了有無光態和偏振方向正交三個物理狀態來嘗試光子計算機。
再比如,在 2019 年,大陸物理學家郭光燦和大陸科技大學部的同事就成功完成了三進制 qutrit 量子信號的傳輸,這也是科學家們在量子領域第一次成功的三進制研究。
近兩年,韓國也成功開發出三進制半導體,讓三進制計算機又往前邁了一步,
如今,二進制下龐大成熟的工業體系,已經漸漸顯現出強弩之末的狀態,但想用其他進制來取代它,仍然是不可能的事情。
但當我們看到三進制計算機在歷史上的曇花一現的時候,有時候也會暢想,會不會在另一個平行時空,人類并沒有選擇電子計算機,而是發展出一套完全適配于三進制的系統,
而在那個時空中,會不會有一個視訊的標題叫《 某國的二進制電腦,為什么被三進制干掉了? 》,也許那個時空的我們,會懷念二進制和電子計算機吧,