任何一套计算机技术, 只要有人开发有人用, 它一定是有数学理论基础作支撑的, 比如SQL语言就是基于关系代数和集合论, 俄罗斯曾经研究过3进制计算机也是因为数学证明3进制比2进制理论上效率要高, 因为3比2更接近自然常数'e' (2.71828....).

很久以前,我在一本《计算机应用基础》教程上看到类似这样的描述:“理论上e进制是最优的进制,考虑到取整数,三进制是实际可用的最优进制,但是考虑到尽可能简化硬件电子器件的设计与制造,现代电子计算机系统的设计普遍基于二进制”。当时我就很不明白这个“e进制”结论是如何推导出来的?从什么角度出发来看待“最优”?那个时候我才刚刚学会用电脑打字,才刚刚学会浏览网页,无法在中文网页上查到任何答案,英文的网页也看不懂。当时我的兴趣也不在计算机科学上,这个困惑就不了了之了,但是问题始终是记在了心里,没敢忘记。

今天重新回到了这个问题, 以一个新的观念思考E进制问题, 尽可能的通俗易懂, 然后由于职业病, 本文许多地方将用ecmascript表达式来表示一些无法表示的数学公式~

什么叫"效率最高"呢? 我认为是利润率最高, 换个形式就是, 得到相同的回报, 成本越低的方案效率越高.

假设我们有n位比特(不只是2进制), 那么可以建立这样一张表:

  二进制 三进制 r进制
产出 2**n 3**n r**n
投入 2n 3n rn

进制的'表示能力'很好理解, 但如何衡量进制的成本?

我们认为, 投入的成本就是总共多少位乘每位多少个状态, 也就是总共需要的状态数量, 把它作为成本. 虽然我不知道这样衡量成本是否一定准确, 但是纯数学没有'存储'的概念, 所以这个成本概念仍然是依赖于物理.

或许把'成本'理解成'存储空间'的相对大小最合适, 注意, 是相对大小而不是绝对大小, 因为一个2进制比特所占据的物理空间未必是4进制比特的一半. 但是数学家不想考虑那么多真实世界的情况, 他们就认为存储3种状态的成本是2种状态的1.5倍, 至于具体情况就甩给物理学家来研究吧, 重点! 这也是日后物理学家选择2进制而非3进制的原因!!

但是进制的产出或者叫'表示数的能力'很好理解, 就是r^n个数.

如何比较效率?

当n==1的时候, 我们会发现所有进制的效率都是相等的, 因为成本:回报==1, 但是我们真的能用比率的形式来表示效率吗, 仔细想一下就知道不行, 因为这个比率与n相关, 如果r进制是常量的话, 回报率等于(r**n)/(r*n)也就是r**(n-1)/n这个关于n的函数是递增的, 也就是位数越多, 回报率越大......

所以人类并不会将全世界的晶体管都拿来做内存以获得无穷无尽的回报, 因为当硬件成本越来越低, '无穷无尽'的回报大都是useless的.

那么该如何公平的比较不同进制的效率呢????如果按照上面推断, 应该是进制越大效率越高哇, 咋回捏??

真实情况是, 比特并不需要多大

和理想状态下不同, 真实情况下, 我们需要多个比特之间顺序排列才能有意义, 哪怕一个一千进制的比特,它同一时间也只能表示1种状态, 即一个对象, 这样的话如果来表示bool类型数据就太浪费了. 同样, 如果用3个比特表示一个数, 数的数量是r**3个, r太大了也没有意义.

举个最简单的例子, 如果银行肯借给我10亿, 我立马能用它每个月1000万的利息致富, 这种方式比任何亿元以下的投资都划算, 但现实情况就是, 10亿根本得不到.....

所以我们应该换一种思路来考虑进制的效率, 那就是: 当目标回报一定的时候, 哪种进制的成本最低?

设目标回报等于m, 即r**n===m, n===log(r,m)     (或者LOGr(m)... 怎么开心怎么写)

那么成本关于r的表达式即: r*log(r,m), 这个函数其实只要利用换底公式就可以轻松转化成对数函数 , 以便用JavaScript画出来:

cost = r => C1*r/log(c2,r), 为了比较相对的cost就可以把常数C1去掉, 得到:

cost_rela = r => r/log(c,r), 于是我分别让c等于e,2和10, 图像都长成类似这样:

可以看出, 曲线的最小值就在E~2.7处, 所以E进制的成本是最小的. 至于用一个无限不循环的小数作为进制我实在不敢想象,而E最接近的整数就是3了,但是由于种种原因, 因为当前科技水平, 仍然是二进制的物理成本更低, 所以计算机选择了2进制而不是3进制.

为啥人脑使用10进制而不是3进制呢?

我再次咒骂自己一遍: 为啥要思考这种无聊的问题????? 既然思考了就简单说一下结论吧: 因为人类不惜牺牲大脑存储空间来换取时间效率, 哪怕平均下来仍然是亏的......最主要的是人脑空间无法自有利用, 所以不用白不用啊, 很合理吧~~~

当然, 这篇文章仍然没有解释为啥自然常数e这么特殊, 为啥e在自然界处处可见, 这个说来话长了, e的神奇之处恐怕1天也说不完...

最后感谢mommytalk这个B站up主的视频给了我灵感:

https://www.bilibili.com/video/av27013943

为啥E进制计算机的效率最高?相关推荐

  1. 计算机处理数据几进制,计算机内部运行和处理的数据是几进制

    计算机内部运行和处理的数据是几进制 计算机内部运行和处理的数据是二进制.原因:1.计算机是由逻辑电路组成,逻辑电路通常只有两个状态,开关的接通与断开,这两种状态正好可以用1和0表示:2.二进制中只使用 ...

  2. 计算机进制转进制,计算机中进制及进制转换

    <计算机中进制及进制转换>由会员分享,可在线阅读,更多相关<计算机中进制及进制转换(55页珍藏版)>请在人人文库网上搜索. 1.计算机中进制及进制转换 计算机中进制及进制转换 ...

  3. 2进制 16进制 计算机术语,十六进制转二进制计算器

    十六进制转二进制计算器 十六进制: 二进制: 进制: 进制: 转换说明:上面第一行可将十六进制转换为二进制,第二行可以将任意进制转换为任意进制. 64个基数为: "[email protec ...

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

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

  5. 计算机系统中常用的进制,计算机中常用 二进制 八进制 十进制 十六进制的特点...

    计算机中常用的计数制 用若干数位(由数码表示)的组合去表示一个数,各个数位之间是什么关系,即逢"几"进位,这就是进 位计数制的问题.也就是数制问题.数制,即进位计数制,是人们利用数 ...

  6. 计算机一级中的进制,计算机一级课程中介绍的不同进制数转换方法之数学原理.doc...

    本 科 生 毕 业 论 文(设 计) 2011 届 论文(设计)题目: 计算机一级课程中介绍的不同进制数转换 目 录 一.摘要····································· ...

  7. 100进制计算机,模100进制计数器.doc

    模100进制计数器 计算机与信息技术学院综合性(设计性)实验报告 专业: 通信工程 年级/班级:08级通信1班 2010-2011学年第一学期 课程名称电子线路辅助设计指导教师xxx本组成员 学号姓名 ...

  8. 在线转换计算机进制,计算机进制转换练习题

    <计算机进制转换练习题>由会员分享,可在线阅读,更多相关<计算机进制转换练习题(2页珍藏版)>请在装配图网上搜索. 1.计算机进制转换练习题1.十进制201转换为八进制 2. ...

  9. 二进制转四进制计算机,二进制换算(进制转换计算器)

    二进制数01011010扩大2倍之后是多少?急求~ 先把它转换成为 10进制 变成90 变180 然后再转换成为2进制 10110100 我看了一下像是一道二进制的题 有谁知道答案帮帮忙 谢谢了 问着 ...

  10. 计算机导么是进制,计算机基础 进制简介和转换

    进制.思维导图: 进制简介: 进制也就是进位计数制,是人为定义的带进位的计数方法.可使用数字符号的数目称为基数或底数,基数为n,即可称n进位制,简称n进制.常见的数学进制有二进制,八进制,十进制,十六 ...

最新文章

  1. Matlab for Linux常用设置
  2. [更新问题]无法在安装新的版本前,为“./boot/vmlinuz-2.6.24-19-generic”做一个符号链接备份...
  3. 【存储知识学习】第三章磁盘原理与技术3.4硬盘接口技术和SCSI硬盘接口--《大话存储》阅读笔记
  4. Sudoku Extension UVALive - 4763
  5. Redmi 10X Pro样张首曝:搭载流光相机技术 一键成创意大片
  6. 使用Jquery EasyUi常见问题解决方案
  7. anaconda查看删除增加镜像源
  8. 计算机博弈 基础算法 阿尔法-贝塔剪枝算法 α-β剪枝算法
  9. 三菱plc pwm指令_三菱PLC高速处理指令编程(新手教学)
  10. 09年全球IT企业互联网公司市值排行榜
  11. 实战!如何搭建一个完整的智能家居系统
  12. 计算机英语单词怎么读,英语单词read怎么读,read的音标是什么,read是什么意思 - 音标网...
  13. Java 并发 随笔 1-初尝并发
  14. Tomcat 5.5 配置
  15. 王者荣耀是用什么语言开发的???
  16. sketch交互动效能导入html吗,UI设计利器Sketch +最新交互利器 Framer 配合使用和动效制作...
  17. mysql自然连接的例题详解_基于 MySQL 的数据库实践(自然连接)
  18. 如何在谷歌地球上画路线或者运动轨迹?根据纬经高信息在谷歌地球Google earth中画运动轨迹,首先将Excel文件纬经高信息转换为.csv文件,再转换为.kml文件,最终在谷歌地球中显示。
  19. 2022年全球市场高纯度橙皮苷粉末总体规模、主要生产商、主要地区、产品和应用细分研究报告
  20. Android怎么实现数字增减,Android实现数字跳动效果的TextView方法示例

热门文章

  1. 图神经网络实战案例-新冠疫苗项目实战,助力疫情!
  2. 【无标题】collecting ... collected 0 items pytest解决方法
  3. 计算机图形学-直线裁剪算法
  4. 利用接口和继承实现  求三角形 圆形面积 和以圆形为底的圆锥形的体积
  5. python初学项目实战——名片管理系统(一)
  6. 同比增长率,环比增长速度、环比发展速度
  7. missing required library libmysql_e.dll,126 解决办法
  8. js 彻底理解回调函数
  9. 【Excel VBA】自动调整列宽和行高
  10. 使用python 批量修改图片分辨率