本
文
摘
要
谁能书阁下
白首太玄经
大家都知道计算机是靠数字 0 和 1 的二进制进行存储和运算的。二进制的基数是2,逢二进一,退一当二。
知道归知道,可没人好奇为什么偏偏是二进制?毕竟计算机是给人用的,非要两种进制来回折腾一下不是很反人类么?
二进制里随便一个数字就是长长一串,根本看不懂。连程序员也是用编程语言,而不是直接用 0 和 1 跟机器交流。
直接在机器码上 debug 的 Jeff Dean 大神除外
我们有十个手指,十进制用起来如臂指使;一天 24 小时,一个小时 60 分钟,这些常用进制怎么都要更好理解吧?
虽说有时候科普时直接就用“ 机器只听得懂 0 和 1 ”蒙混过关了,不过这也是人赋予的规则,有了合适的材料和逻辑也能改变。
其实最重要的原因,是计算机刚出现的时候,二进制最好整了。
二进制电路简单好实现,运算逻辑还能直接套用现成的布尔代数,省力省事。
计算机靠电路中的高低电平变化就能分别表示 0 和 1
这一整就一直整到了现在,几十年来二进制计算机越来越先进,各方面的硬件也逐渐完善。现在你手上的手机,花了大把钞票的显卡,女神的照片,最爱的游戏,靠的全是二进制。
可差友们知道么,在理论上二进制并不是最有效率的那个。
也就是说,如果用的不是二进制,我们可能早个几年就过上现在的生活了,面前这块糟心屏幕可能没有刘海没有水滴也没有孔。
那为什么不用最有效率的那个!是嫌科技太发达了还是 GTA 6 等的不够苦?
倒不是那时候的科学家们偷了懒,也不是从理论上说,e 进制才是信息表达的最优进制。
e 的大名叫自然常数,也叫欧拉数,是个数值大约是 2.71828 的无限不循环小数。高中数学提过,记不清的差友把它当成 π 一样的东西就好。
当 n 越来越大时,(1 + 1/n)n 的值越来越趋近 e
可能有差友更奇怪了,进制这种东西又不是量化的具体数字,怎么比啊?
曾经有古希腊哲学家问过万物的本源这个问题。对此,毕达哥拉斯的回答是 “ 万物皆数 ”,他认为一切都可以通过特定模型转化成数字。
虽然晚了毕达哥拉斯几千年 , 但进制在计算机上的优劣问题同样可以量化成直观的数字。
进制表达信息的能力等于表达的信息量与消耗资源的比值
比如说我们要用二进制用 8 位数据来表达信息,那么每一位上都有 1 和 0 两种可能。
8 位就有 28 种不同的排列方式。
也就是说,二进制在 8 位 数据上能够表达 256 种不同的信息内容。
而为了表达这些数据每一位上都需要有 0 和 1 两种不同形式,8位数就需要消耗 2 × 8 = 16 个用来表达信息的元件。
按照之前的量化公式,我们就可以得到二进制在 8 位数据上的效率是:
256 ÷ 16 = 16 。
当然,我们不可能一个个进制、位数算过来,估计很多差友都想到了,直接代数化就好了。
假设我们要用 x 进制表达 n 位的数据信息,和之前二进制表达 8 位数据同理:
一共能表达 xn种不同的信息内容,需要消耗 nx 个表达信息的元件。
x 进制的效率就是 xn / nx
虽然一堆未知数,其实和分数一个道理,分子不变的情况下,分母越小,得数就越大。
所以消耗的资源 ( nx ) 越小,这种进制的效率就越高。
抽奖时分母越少, *** 概率也越高,可我从来只是分母
温馨提示:下方为推导过程,不感兴趣可直接略过看结果。
信息量 I = x^n
消耗的资源P(x)=nx
x进制的效率=x^n/nx
P(x)一定时,x^n最大
[P(x)/n]^n
ln{[P(x)/n]^n}
=[lnP(x)-lnn]n
=nlnP(x)-nlnn
lnP(x)-1-ln(n)=0
n=P(x)/e x=e
前面也提过, e 的值大概是 2.71828 左右,也就是 “ 2.71828 进制 ”是理论上最好的进制。
但是 2.71828 进制是个什么鬼???我数数手指还得掰折 0.28172 根手指?
还是得找个整数,不然工业上可能没法实现了。。。因此和这个数更接近的 “ 三 ”应该是坠吼的!
得到结论:数据表达上效率最高的是三进制,其次是二进制。
三进制... 3 ?似乎联想到了什么
虽然三进制效率更高,但是却没有合适的运算逻辑和简易的实现方式。
即使是更好实现的二进制,第一台通用计算机 ENIAC 也需要三万多个电子元件,五百多万手工焊接头,功率达到了惊人的 150 千瓦。
电就是钱啊我的朋友!简单的都这么耗电,更复杂的谁试的起。
当地居民总觉得,每当这台计算机启动的时候,全城的灯都变暗了
不过随着科技的发展,这些问题已经得到了解决。
比如科学家们基于波斯特函数优化了三进制的运算逻辑,用对称的双电源供电实现正向饱和导通、负向饱和导通、不导通 3个稳定状态等等。
可这早就是若干年后的事了。科学家们吭哧吭哧解决了这些问题后,却绝望的发现,二进制早就以指数级的增速飞的没影了。
世界上最遥远的距离是你刚断线重连,而对线的人已经超神了一整局
就跟玩了很久,排名靠前的网游大号,就算明知道没选上最强势的职业,也少有人会下决心从零开始玩小号。
更别说是在越来越离不开计算机的今天,抛弃发展完善的二进制体系。
说点看得见的,连现在的硬件体系都要洗牌,一张张燃气灶都成了摆设
不过暗戳戳练个强势职业的小号的人还是有的,万一哪天大号下水道了,谁说得准啊?
最早苏联是直接当大号玩的:在 1958 年制造三进制计算机的 Setun ,1970 年的增强版 Setun 70 ,都是当时的顶尖算力。
苏联造-三进制计算机 Setun
当然随着苏联解体,三进制计算机也混入了历史的尘埃,西方国家也一直没能复现 Setun 。
到了今天,芯片的制程越来越小,半导体逐渐靠近了量子这个玄学领域。就像开了等级上限的⽹游,二进制发展不动了, 三进制的机会就来了。
之前练没练的小号都开始了。
三进制最显而易见的好处是同样的信息需要的元件数更少,芯片的制程就可以稍微大上那么一点点,拖延半导体进入量子这个说不清道不明的玄学领域的时间。( 虽然从底层改变并不那么实际 )
多出来的一个数字,也给了三进制多一种可能性。
二值布尔逻辑虽然让二进制飞速发展,但也让二进制里只有“ 真 ”,“ 假 ”两种状态。从认知来说,也许真、假、不确定三种状态才更符合人脑的思维。
也许少了“ 不确定 ”状态,才是智能变制杖的原罪,或许在三进制的逻辑下 AI 就能真正智能了呢?
在竞争激烈的量子领域,本身就会多一种额外的状态,不确定的叠加态。
而这多出的状态,刚好可以用三进制比二进制多出来的那个数来表达。
今年中国物理学家郭光灿和中国科技大学( USTC )的同事就成功完成了三进制 qutrit 量子信号的传输,这也是科学家们在量子领域第一次成功的三进制研究。
之前在只有经典计算机时,三进制研究的意义可能只是技术积累,但正是这些积累,催生了真正改变我们生活的技术。
而现在,对于研究三进制的科学家来说,二进制虽然有庞大成熟的工业体系,但已经微微呈现疲软:你已行至终局,而我才刚刚开局,但很快你就会发现,我们根本不在一张棋盘上。
“ 变不可能为可能,才是科技的魅力 ”