【周末闲谈】二进制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进制是最优的进制,考虑到取整数,三进制是实际可用的最优进制,但是考虑到尽可能简化硬件电子器件的设计与制造,现代电子计算机系统的设计普遍基于二进制”。也需在未来的某一天,我们可以重新看到三进制计算机重新出现在我们的生活中。

目录
相关文章
|
4天前
|
算法 测试技术
进制算法题(进制转换、Alice和Bob的爱恨情仇)
进制算法题(进制转换、Alice和Bob的爱恨情仇)
|
4天前
小明同学学习了不同的进制之后,拿起了一些数字做起了游戏。小明同学知道,在日常生活中我们最常用的是十进制数,而在计算机中,二进制数也很常用。现在对于一个数字x,小明同学定义出了两个函数f(x)和g(x)
小明同学学习了不同的进制之后,拿起了一些数字做起了游戏。小明同学知道,在日常生活中我们最常用的是十进制数,而在计算机中,二进制数也很常用。现在对于一个数字x,小明同学定义出了两个函数f(x)和g(x)
|
4天前
|
存储 C++
【软件设计师备考 专题 】数制基础:二进制、十进制和十六进制的理解与转换
【软件设计师备考 专题 】数制基础:二进制、十进制和十六进制的理解与转换
13 1
|
4天前
软考中级(软件设计)——十进制转二进制的浮点数运算
软考中级(软件设计)——十进制转二进制的浮点数运算
41 0
|
4天前
软考中级(软件设计)——十进制转十六进制的浮点数运算
软考中级(软件设计)——十进制转十六进制的浮点数运算
48 0
|
4天前
软考中级(软件设计)——十进制转八进制的浮点数运算
软考中级(软件设计)——十进制转八进制的浮点数运算
29 0
|
4天前
|
算法
PAT甲级真题1010 进制
PAT甲级真题1010 进制
23 0
|
10月前
第八周周末总结(二进制转十进制总结)
第八周周末总结(二进制转十进制总结)
|
10月前
|
数据采集 存储 数据挖掘
【每周一坑】罗马数字转换
由图可知,螺旋数组中的数字运动方向依次 右 -> 下 -> 左 -> 上 -> 右 这样的循环,在合适的条件下变换累加方向即可。
|
11月前
蓝桥杯基础训练】十六进制转八进制
给定n个十六进制正整数,输出它们对应的八进制数。
58 0