【周末闲谈】二进制VS三进制

简介: 【周末闲谈】二进制VS三进制

前言


💻作为计算机是20世纪最先进的科学技术发明之一,对人类的生产活动和社会活动产生了极其重要的影响,并以强大的生命力飞速发展,了解电脑原理的人就知道,现代的计算机和依赖计算机的设备里都使用二进制,但我们有没有思考过为什么?🤨今天就让我们来谈谈为什么电脑使用的是二进制吧🚗🚗🚗


一、效率?ㄟ( ▔, ▔ )ㄏ


我们使用二进制是因为它的效率最高吗?

很遗憾,事实上很早就有人否定了这个观点。

让我们拿100⁹⁹与99¹⁰⁰来举个例子吧,

如果我们要想知道它们那个更大,通常我们们使用十进制就可以得到:


9bcc1541147383168f68ccbfa404c732_37e2267dd380456ab501c9c356373341.png


你会发现:无论是99个100,还是100个99,加起来都是9900。

所以这个问题变成了:如果你把9900拆成几个数的和,然后把它们乘起来,什么时候乘积最大?

当我们把9900拆成一大堆正整数的和,让它们的乘积最大,我们不难发现拆成3300个3时,它们的乘积最大,这是巧合吗?🤷‍♂️🤷‍♂️🤷‍♂️


试想想:大家一定玩过算珠吧,如果给你100个珠子,你最多能表示出多少个数呢?

如果算珠使用的是10进制,那每一位的柱子上需要有10个珠子,100个珠子可以串满10根柱子,也就是能表示出十位数,总共能表示1010个数;

如果用5进制,即每一根柱子上需要串5个珠子,一共能串满20位,也就是能表示520个数

以此类推,我们列出一个表格:


80b43664e24a449df16e435145dbf1ae_6a468914806246958ab4135f0b938e72.png



我们不难发现:同样用100个珠子,使用3进制——每根柱子上串3个珠子,表示33位,效率是最高的,它能表示出最多的数字!

我们还可以把进制x作为横坐标,把100个珠子在这种进位制下能表示的数作为纵坐标,画出一幅图,你会发现,在进位制是e=2.71828…时表示的数最多!这个数就是自然常数e!它是一个和圆周率π一样神奇的无理数


为了表示 M 个数,在 x 进制下,需要 x*logx^M 个珠子

所以效率就可以表示成这样一个公式:


8c58c8e035070bbd86e5047f1936de50_b49b79f84a7a48cfa0f3ceb71464aec6.png


那么它何时取最大值呢?我们求导看看:f`( x ) = MlnM ( 1-lnx ),显然当我们x=e时有最大值。


1684813383364.png


所以效率最高而选择它的解释是行不通的


二、三进制计算机?(+_+)?


五十年之前我们的老大哥苏联就发现了三进制在计算机上的优势。


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 就此成了莫斯科大学的绝唱。再后来苏联解体,三进制计算机也跟着苏维埃混入了历史的尘埃,直到今天也没有其他国家能够复现它。


总结


在《计算机应用基础》一文中写到:“理论上e进制是最优的进制,考虑到取整数,三进制是实际可用的最优进制,但是考虑到尽可能简化硬件电子器件的设计与制造,现代电子计算机系统的设计普遍基于二进制”。也需在未来的某一天,我们可以重新看到三进制计算机重新出现在我们的生活中。

目录
相关文章
|
6月前
用人话教会你各个进制的意思和进制间的转化!!!
用人话教会你各个进制的意思和进制间的转化!!!
|
7月前
|
存储 C++
【软件设计师备考 专题 】数制基础:二进制、十进制和十六进制的理解与转换
【软件设计师备考 专题 】数制基础:二进制、十进制和十六进制的理解与转换
140 1
OJ题库:计算日期到天数转换、打印从1到最大的n位数 、尼科彻斯定理
OJ题库:计算日期到天数转换、打印从1到最大的n位数 、尼科彻斯定理
63 0
第八周周末总结(二进制转十进制总结)
第八周周末总结(二进制转十进制总结)
蓝桥杯基础训练】十六进制转八进制
给定n个十六进制正整数,输出它们对应的八进制数。
82 0
|
存储 C语言
【C语言_复习_学习第二课】什么是进制?进制之间应该如何转换
什么是进制?在我们的生活中处处充满进制,一天是24个小时、一个小时是60分钟、一分钟是60秒、一个星期一共7天........还有大家听说过半斤八两这个词语吗?也就是说买半斤东西也就是八两,一斤也就是十六两,满16进一位这就是十六进制。我今天就当一次小学老师来考考你,5+8等于多少(我没有在和大家开玩笑)你会说等于13,你的回答就是十进制也就是满十进一,而在计算机中数字都是以二进制(只有1和0)存储的也就是满二进一位,当然也有八进制(从0到7)、十六进制(从0到F)都是类似的,八进制满八进一位,十六进制满十六进一位(其中十六进制10用A来表示,11-B、12-C、13-D、14-E、15-F)
121 0
一日一技:装逼技能,口算二进制转八进制和十六进制
一日一技:装逼技能,口算二进制转八进制和十六进制
138 0
|
算法 Java
【五一创作】AcWing——凑数(二进制中1的个数)
【五一创作】AcWing——凑数(二进制中1的个数)
94 0
|
机器学习/深度学习 存储 安全
大一学生一周十万字爆肝版C语言总结笔记(下)
是对C语言程序设计的一次期末总结,也是对未来从事相关工作的一次展望和打下基础。编程能力从来不会是一蹴而就的,而是日积月累的反反复复的练习和思考总结出来的,不是多少天就可以速成的。 编程是一项引发积极思维的活动,它不是一种简单的技能,不是只要数据有关规则,熟能生巧就能完成任务的编程,需要指挥编写每一个程序,都要积极开动脑筋,发挥创造精神,编程是一件很灵活的工作,没有标准答案,不同的人可以写出不同的程序。 计算机的本质是“程序的机器”,程序和指令思想是计算机系统中最基本的概念。
131 0
|
存储 机器学习/深度学习 人工智能
大一学生一周十万字爆肝版C语言总结笔记(中)
是对C语言程序设计的一次期末总结,也是对未来从事相关工作的一次展望和打下基础。编程能力从来不会是一蹴而就的,而是日积月累的反反复复的练习和思考总结出来的,不是多少天就可以速成的。 编程是一项引发积极思维的活动,它不是一种简单的技能,不是只要数据有关规则,熟能生巧就能完成任务的编程,需要指挥编写每一个程序,都要积极开动脑筋,发挥创造精神,编程是一件很灵活的工作,没有标准答案,不同的人可以写出不同的程序。 计算机的本质是“程序的机器”,程序和指令思想是计算机系统中最基本的概念。
180 0