电脑|苏联的三进制电脑!为什么被二进制干掉了

当我们在电脑上打开一个软件,看一部电影,听一首歌的时候,我们很难想象,这些东西都是由 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 。
电脑|苏联的三进制电脑!为什么被二进制干掉了


推荐阅读