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