来源:差评

当我们在电脑上打开一个软件,看一部电影,听一首歌的时候,我们很难想象,这些东西都是由 0 和 1 这样的二进制数字组成的。

但你有没有好奇过?为什么计算机要用二进制呢?难道是因为它效率最高吗?

但其实并非如此,理论上讲,三进制计算机的效率要比二进制更高,甚至苏联也曾花费重金研究过它。那我们为什么没有用上这种更高效的计算机呢?

今天跟大家聊聊三进制计算机的故事。

01 

二进制是最好的吗?

进制,是一种人类智慧衍生的计数方式。

我们天生有十根手指,所以人类天然选择了十进制。计票时常用的写 “ 正 ” 字,也类似于五进制。而计算机的二进制是由 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。

由此我们能得出结论,数据表达上,效率最高的是三进制,其次才是二进制。

但为什么咱们现在没用上效率更高的三进制计算机呢?

这就不得不提到那个已经消失国家了。

02 

平衡三进制和 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 就此成了莫斯科大学的绝唱。

再后来苏联解体,三进制计算机也跟着苏维埃混入了历史的尘埃,直到今天也没有其他国家能够复现它。

03 

为什么现在没有三进制计算机 ?

虽说Сетунь证明了三进制计算机的可行性,但它没能发展起来,政治原因并不是主要原因。

甚至可以说,三进制计算机的失败,是一种历史必然。

因为即使我们前面在数学上论证了三进制的效率,但也只停留在理论上,从理论到具体实现,经过的步骤太复杂了,因为比如说如果要做三进制计算机的话,就要用三种稳定状态的材料,起码二极管是用不了了。

而二进制只有 “ 0 ” 和 “ 1 ”,高低电压就很好区分,就算有些误差,计算机也可以识别出来,所以在稳定性上会远远高于三进制,在工程上也更容易实现。

所以三进制对效率的提升也许并没有想象的那么美好。

既然它不够稳定,又不能高效提升,工程上还难以实现。为了这么一点可能的红利再从头发展这种技术就显得没必要了。

反观二进制的发展速度,早就快的没影了。

这就好比你玩了好久的养成游戏,已经花了无数个 648,就算没抽出版本之子,也很少有人从零开始玩小号吧。更别说是在越来越离不开计算机的今天,抛弃已经发展完善的二进制体系。

说点看得见的,要是没了二进制,我们现有的硬件体系都要洗牌,大家的电脑手机等电子产品会直接变砖,这事儿听起来也不现实吧。

04 

它是历史还是未来?

不过到了今天,随着芯片的制程越来越小,马上会碰到量子这个玄学领域,量子隧穿这样的难题,我们可能要花非常多的精力,才可能提升一点点效率,就像开了等级上限的⽹游,二进制已经快满级了,也许要开始开辟其他的路了。

而三进制,现在就正在电子计算机以外的形态上复活。

比如,本身电子计算机因为只有开关两种基础状态,但是假如是光子计算机,就有光强、波长、相位、传播方向和偏振五种状态,上海大学的金翊教授团队就取了有无光态和偏振方向正交三个物理状态来尝试光子计算机。

再比如,在 2019 年,我国物理学家郭光灿和中国科技大学的同事就成功完成了三进制 qutrit 量子信号的传输,这也是科学家们在量子领域第一次成功的三进制研究。

近两年,韩国也成功开发出三进制半导体,让三进制计算机又往前迈了一步。

如今,二进制下庞大成熟的工业体系,已经渐渐显现出强弩之末的状态,但想用其他进制来取代它,仍然是不可能的事情。

但当我们看到三进制计算机在历史上的昙花一现的时候,有时候也会畅想,会不会在另一个平行时空,人类并没有选择电子计算机,而是发展出一套完全适配于三进制的系统。

而在那个时空中,会不会有一个视频的标题叫《 某国的二进制电脑,为什么被三进制干掉了? 》,也许那个时空的我们,会怀念二进制和电子计算机吧。

未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)大脑研究计划,构建互联网(城市)大脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。每日推荐范围未来科技发展趋势的学习型文章。目前线上平台已收藏上千篇精华前沿科技文章和报告。

  如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”

苏联的三进制电脑,为什么被二进制干掉了?相关推荐

  1. 三进制计算机_漫话二进制

    时间兜兜转转,终于又来到了乐博小课堂的时间,在讲今天要讲的内容之前,乐博客先给大家讲一个笑话: "世界上只有10种人,一种懂二进制,另一种不懂二进制." 这个笑话展示的就是我们这次 ...

  2. 三进制计算机_三进制半导体诞生,逻辑比二进制更接近人类思维?

    7月17日,据韩媒报道,韩国一个科研团队已成功在大尺寸晶圆上成功实现了一种更节能的三元金属氧化物半导体. 韩国蔚山科学技术大学(UNIST)电子和计算机工程系教授Kim Kyung Rok及其团队,在 ...

  3. 三进制 四进制计算机原理,基因编码为何选择了“四进制”,而不是计算机系统的“二进制”?...

    计算机已经成功的证明,"二进制"是一种简洁又高效的编码方案(且与物理硬件相得益彰),它可以传递和映射任意复杂度的信息. 但基因编码,绝大部分却使用了4种碱基(DNA是ATCG,RN ...

  4. (转载)二进制与三进制的妙用

    原网址:http://www.cnblogs.com/heaad/archive/2010/12/22/1913733.html 先来思考几个问题,并不难,各位大牛应能秒杀: 1. 小明是个卖苹果的, ...

  5. 二进制转换为三进制 ——C++实现

    二进制转换为三进制 题目: 输入一个2进制的数,要求输出该2进制数的3进制表示. 在3进制的表示中,只有0,1,2三种符号 Input 第1行是测试数据的组数n,后面跟着n行输入.每组测试数据占1行, ...

  6. 三进制计算机_计算机数学原理之二进制

    上一节我们了解了曲线的矩形逼近,以及由此代表的模拟量的数位表示.基于以上知识, 这节课我们可以开始学习二进制了. 计算机原理之 二进制 对数值的数位表示,我们可以很自然的想起十进制.即所有的数字都用1 ...

  7. [清华集训2016]石家庄的工人阶级队伍比较坚强——三进制FWT

    题目链接: [清华集训2016]石家庄的工人阶级队伍比较坚强 题目大意:有$n=3^m$个人玩石头剪刀布,共$t$轮游戏,每轮每个人要和包括自己的所有人各进行$m$次石头剪刀布.每个人在$m$轮中的决 ...

  8. HDU 3001 Travelling (三进制状压dp)

    题意 n(n<=10)n(n个城市,知道每个城市间的旅行费用,但每个城市最多走两遍.问最小花费是多少 . 也就是每个城市可以走两次的tsp问题. 分析 最多走两次,三进制0 1 2可满足,即用三 ...

  9. 为什么三进制计算机没有商业化?

    2019独角兽企业重金招聘Python工程师标准>>> 今天偶感,忽然想:为什么计算机用二进制?通过Google,发现竟然还有三进制计算机.于是一路查找下去,都是一些关于三进制计算机 ...

最新文章

  1. vue开发使用vue-particles如何兼容IE11?
  2. 9.1 基于内容的推荐系统-机器学习笔记-斯坦福吴恩达教授
  3. 单身的原因终于找到了!原来是这几个......
  4. oracle 微信公众号,关于微信公众号贴代码的方法
  5. ios9和xcode7的适配问题
  6. 移动端软件测试要点,移动端测试用例设计总结
  7. ubuntu 系统 下载GCC FreeType
  8. 面料ERP_面料软件_面料管理软件
  9. YOLOv3的批量图片检测以及批量输出(windows下)
  10. ES6-rest参数
  11. 企鹅CMS开源影视系统
  12. mysql按每月分组统计_MySql按周,按月,按日分组统计数据
  13. Eclipse 创建JavaWeb工程
  14. Flask外部访问服务器最简单的操作
  15. html5程序阅读题,20 个重要的 HTML5 面试题及答案
  16. IT外包公司的运作模式如何,他们的赚钱之道何在
  17. 如何一键拼图?不妨试试这三个一键拼图软件
  18. 双相障碍快速循环发作的治疗:证据回顾 | 文献述评
  19. 手把手教你做出数据可视化项目(七)可视化图表数据动态获取及界面跳转
  20. 一个字节中的1的个数

热门文章

  1. 短视频行业(内容创业)
  2. 获嘉供应链直播基地,培育网红爆款都说好
  3. XT.COM即将上线IJZ(IINJAZ)
  4. 微处理器, 中央处理器的概念
  5. 新学期 新开始 新追求
  6. [19保研]中国科学院自动化研究所“智能计算与控制”大学生暑期夏令营2018年招生简章...
  7. 2017-7-10 暑期实训日志
  8. (一)分享:电子设计之电路板手工制作(王文飞2019.12.01)
  9. 完整解密授权,全模块
  10. 辩论会写数学作业使用计算机,作业辩论赛作文600字