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