计算的发展:从算盘到电子计算机
这篇文章,我们来复盘一下计算的发展历史,从开始的扳手指到现在的电脑,以及整个过程的原因和解决方案。
从10以内加减法到10以上的加减法,大数计算从几分钟完成到几秒内完成,这一切的变化经历了哪些发展,说明了哪些道理?我们一起来看看吧。
一、计算的回顾
10以内的加减法运算
婴儿识数使用的最早的计算器是什么?
显然是手指,1+1=2,2+2=4,5+5=10,10以内的加减法是最容易学习的,10以内的计算其实就是在数手指。2+3=5就是伸出2个手指 再接着伸出3个手指,然后按照顺序从开始数到5,我们才知道2+3等于5。
整个运算的过程分成四部分:
1. 将左手5个手指全部拳起来,是为初始状态
2. 从小手指开始依次伸出两个手指,是为被加数
3. 从中指开始再伸出三个手指,是为加数
4. 对最终全部伸开的手指状态进行数数。得出最终的结果
整个计算过程经历4个状态变化:
整个计算过程,有输入数据2和3,有计算方法+,有输出结果5。
2+3=5之所以能用手指表示出来因为我们的5个手指充当了容器。10以内的计算实际就是将2和3分别放到容器里,然后再读出容器的刻度。如果没有容器,或者容器不足以承载2和3,那么自然就不可能读出5。
10以内的加减法,我们都可以非常容易的计算出来,因为我们天然带着这个容器,哪怕20以内的加减法,小朋友们也会聪明的用十个手指加十个脚趾完成,再多用我们身体自带的计算容器显然就不够用了。
10以上的加减法运算
10以上的加减法是怎么算的呢?
此时我们开始使用列竖式的方式,234+789=?
我们的算法是234与789个位与个位对齐,十位与十位对齐,我们从低到高依次计算,4+9=13=10+3,个位留3,十位进1,依次计算我们可以得到1023。
显然此时我们使用了三种规格容器,10的容器,100的容器,1000的容器。在各个容器内计算的时候,我们使用的计算还是可以简化成10以内的数据计算。
竖式的方式扩大了我们可使用的容器规模和数量,可使用的容器本身极大的拓展了我们的计算能力。
我们中国古人发明了算盘,从算珠的排列方式上,可知算盘是很强大的计算容器和计算工具。
无论是列算式还是用算盘,能计算对的前提都是,使用算式或算盘的人需要按照计算的规则,完成算式的运算。这个过程非常依赖人的注意力,如果注意力不够集中,很容易算错,从而得到错误结果。
二、计算难度的原因分析和解决方案
10以上的加减法为什么这么难?
古人为什么要发明算式或者算盘哪?肯定是因为我们用人脑算这些东西比较吃力,为什么会吃力哪?
1. 越复杂的计算需要越多的容器,比如10以内,十个手指可以胜任,100以内就没有手指可以胜任了。纸张和算盘可以承载足够多复杂的容器。
2. 使用越多的容器,容器之间的关联关系越多。虽然基本的规则是简单的,但是当容器的数量多到一定程度或者重复到一定程度的时候,我们的认知就会迷路了。重复的东西会让我们无法回到出发点。
相信大家有过以下经历:
1. 看别人的文章和视频,看了一遍觉得懂了,自己动手就不会了。所谓的眼睛懂了但是手还是不会,这本质上是因为对这个事情还没有真正掌握,还需要强化训练。眼睛懂了是因为,分解后的每个动作确实是容易的,当尝试整体落地的时候就需要脑袋里有一个足够大的容器,能够把这些很多简单分解动作组合起来。中间有任何一个步骤错误,都会导致无法达到最终的目标。
2. 为什么我们大部分人是很难欣赏纯音乐,一首纯音乐,前后的呼应或音符的叙事中间有很多其他的音符。未经训练的大脑,并不是一个合格的纯音乐容器,无法容纳足够多的音符变化。听懂的人是因为听到的内容和前文的一些音符形成了呼应,而大部分的人已经忘记前文是什么了。
学过计算机的同学,可能已经意识到,前文一直提到的容器,在计算机语言里就是堆栈,是各种数据结构。我们不仅要能将步骤、音符等信息装到容器里,还需要做到随时可以取出来。如果不能随时取出来,这些堆栈里的信息就是死的信息了。
解决思路有哪些?
如何提高堆栈处理能力哪?
两个思路:
1. 训练大脑
要提高数学的心算能力,可以通过学习各种心算技巧,并大量的练习。很多少儿心算培训班走的就是这条路。要提高音乐的欣赏能力,可以学习演奏乐器、大量的欣赏音乐。要提高阅读的学习能力,可以通过大量的阅读强化。2. 发明设备
训练大脑,当然是可行的方式,很多数学天才都通过这种方式,取得了了不起的成就。除此之外的另一条道路就是发明设备。
发明设备实际就是实现对人的计算行为的模拟。模拟人的行为显然是不容易的,好在现代计算机的广泛使用早就宣告了这种模拟已经成功了。我们可以踏着前人的路径简单回顾下,前人是如何模拟的。
计算如何被模拟的?
1. 识别被模拟对象有哪些模块及相互之间的关系
计算机科学史上最伟大的模型之一,自然是图灵机,图灵机的输入和输出都使用的是纸带,输入的内容通过程序的转换可以转换为纸带上的输出。图灵机模型被提出不久,就得到很多科学家的一致认可。
约翰·冯·诺依曼继续发展的基础上提出的现代计算机的模型使计算机又前进了一大步,计算机的被抽象为5大模块:控制器、运算器、存储器、输入设备、输出设备。
存储器和控制器的结合可以实现堆栈的模拟功能,只要有足够的内存,不仅10的容器、100的容器、1000的容器,更大更多的容器也可以被模拟出来。运算器和控制器的结合可以实现加减乘除的容器操作。输入设备和控制器的结合可以模拟加数、被加数、减数、被减数、乘数、被乘数等各种输入。输出设备和控制器的结合可以模拟各种输出的结果,不仅是文字,还包括图形和图像。2. 用合适的设备模拟计算
对计算的模拟早已有之,人们尝试了各种有计算潜力的系统,包括水力、热力、机械力,显然只有到近代电力科学的发展才给人类提供了更容易控制的耗散系统模型。
在电子计算器发展以前,人们的计算更多的都还集中在对时间的计算。中西方都尝试过用水、热、机械等各种方式驱动钟表的运转,显然钟表的运转是比较早的计算了。
随着计算机的发展,计算器已经从最初占地170平方米发展到手提式笔记本、手机、智能穿戴设备。
3. 计算机语言的模拟
和计算机一起发展的自然是编程语言。在软件编程领域,大部分的编程都已经从面相过程的编程切换到面相对象的编程。
面相对象的编程方式在各种设计模式的加持下垄断了大部分的软件设计开发。
面相过程向面相对象切换的本质原因是什么哪?
前文我们提到计算能力的差异本质是堆栈的深度决定的,堆栈就是容器。
我们设想一个场景:
某探测队发现一个直径为半米的深洞,派人下去和派机器下去会有什么区别。显然在幽闭的管道环境里,人可能下去二十米就到极限了,再继续下沉人就会迷失了,如果停留的时间过长,人会发疯。如果派机器下去哪?显然只要电力供应跟的上,下面的环境只要不损坏设备,机器下沉几千米几万米都能正常返回。
同样道理,面相对象编程并不是为了适应计算机,恰恰是为了适应人。各种设计模式的加持就是让人可以不在代码的汪洋中迷失,设计模式的工厂模式、代理模式、原型模式、中介者模式、责任链模式等等模式如同地图上的参照物,没有这些丰富的参照物仅仅靠看太阳,你不可能知道自己究竟是在北京还是在上海,是在家里还是在单位。
在一定程度上,编写程序就像在挖地道,而按照设计模式设计的架构就像地道开挖前,打的各种竖井,瞄着各种竖井挖地道不容易走偏。每挖一段就可以探出头来透透气。
当然有些从事软件开发的人可能并未意识到自己使用各种设计模式,大家使用的Spring、Hibernate、Struct等各种软件架构就是在各种设计模式的指导下设计的。
正常的软件系统开发时,使用的框架图、类图、流程图等就是软件开发时的施工蓝图,只有设计足够精良的施工蓝图才能带来更健壮、更容易升级和复用的软件系统。
三、一些认知副产品
人们发明计算机的重要原因是因为不同人的心理堆栈的深度是不同的,有些人经过特殊的训练,心理堆栈更深,可以从事更复杂的任务。有些人某些方面的心理堆栈没有经过训练,深度较浅,在理解某些复杂问题的时候就会吃力。
互联网领域有一个特别令人恐惧和厌烦的角色 — 电脑黑客,指的是不经过权限人同意用恶意的手段绕过别人的权限系统,非法的获取别人的信息,从而获取利益。
同样的对人也存在一些这样的黑客,利用一些手段,让用户的心理堆栈溢出,从而打开别人的钱包,非法的获取别人的钱财。比如各种邪教、诈骗都部分的使用了这个原理。
就像电脑黑客是不被欢迎的,人心黑客也是如此,无论做技术还是做人,我们还是坚持,真诚才是必杀技的好。
真诚才能行之更远。
本文由 @我是产品张 原创发布于人人都是产品经理。未经许可,禁止转载
题图来自Unsplash,基于CC0协议
该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。
加快计算速度,揭示电子在材料中的相互作用方式
图片来源:Physical Review X (2024)。DOI: 10.1103/PhysRevX.14.021023
材料科学家和工程师希望确切地了解电子在新材料中如何相互作用和移动,以及用它们制成的设备将如何表现。电流在材料内容易流动吗?在某个温度下,材料会变成超导的,使电流能够在没有电源的情况动?电子自旋的量子态在新的电子和量子器件中会保留多久?
一群材料物理学家试图通过了解材料内部发生的事情来解决这些问题,计算它们的行为,直到单个电子相互作用和原子运动的水平。
现在,加州理工学院的一个团队取得了一项关键发现,有助于简化此类计算,在保持准确性的同时将其速度提高了 50 倍或更多。因此,可以计算更复杂的材料和器件中的电子相互作用,并开发以前认为不可能的新计算。
在发表在《物理评论X》杂志上的一篇新论文中,加州理工学院的应用物理学研究生罗瑶;他的导师Marco Bernardi,应用物理学、物理学和材料科学教授;同事们描述了一种新的数据驱动方法,使这些进步成为可能。他们的方法简化了密集的计算矩阵,用于表示材料中电子和原子振动(或声子,可以被认为是振动能量的单个单位)之间发生的相互作用。
Luo和Bernardi说,新方法允许他们只使用通常用于解决此类问题的1%到2%的数据,大大加快了计算速度,并在此过程中揭示了决定材料特性的最重要相互作用。
“这非常令人惊讶,”Bernardi说。“用压缩矩阵计算的电子-声子相互作用几乎与完整计算一样准确。这极大地减少了计算时间和内存使用,在大多数情况下大约减少了两个数量级。这也是奥卡姆剃刀的一个优雅例子,奥卡姆剃刀的想法是偏爱具有最少参数的简单物理模型。
为该领域寻找新的中间立场
该领域的研究人员通常遵循两种方法之一来理解这个最基本层面的材料。一种方法强调构建最小的模型,降低系统的复杂性,以便研究人员可以在纸笔计算中调整一些参数,以获得对材料的定性理解。
另一种方法只从材料的结构开始,使用所谓的“第一性原理”方法(需要大型计算机的量子力学计算)来定量精确地研究材料特性。
Bernardi的团队专注于后一组方法,使用具有数十亿个条目的超大矩阵来计算控制各种物理性质的电子相互作用。这意味着每次计算需要数千小时的计算时间。Bernardi说,这项新工作表明了这两种方法之间的一种中间立场。
“使用我们的新方法,您可以截断这些矩阵的大小,提取关键信息,并生成材料中相互作用的最小模型。
根除最重要的单一值
他的团队的方法基于将一种称为奇异值分解(SVD)的方法应用于材料中的电子-声子相互作用。SVD技术广泛应用于图像压缩和量子信息科学等领域。在这里,它允许作者在数千或数百万个电子-声子相互作用的矩阵中分离或解开电子和振动分量,并为每个基本相互作用分配一个数字。
这些实数称为奇异值,并按重要性顺序对基本交互作用进行排序。然后,程序可以消除每个矩阵中除百分之几之外的所有相互作用,只留下前导奇异值,这一过程使测定成本降低,其系数与压缩量成正比。
因此,例如,如果程序只保留奇异值的 1%,则计算速度会快 100 倍。研究人员发现,仅保留一小部分奇异值(通常为1%至2%),近似结果与完整计算几乎相同。
“通过使用SVD,你可以减少奇异值的数量,只捕捉代表给定材料中电子相互作用的矩阵的主要特征,”该论文的主要作者Luo说,他是Bernardi小组的第三年。
“这截断了原始矩阵,从而加快了算法的速度,并具有揭示材料中哪些相互作用占主导地位的额外好处。
Bernardi指出,SVD方法的后一个好处为研究人员提供了关于材料中电子相互作用的“物理直觉”,这是过去第一性原理计算中缺少的。例如,在涉及硅的计算中,很明显,占主导地位的奇异值与特定键的拉伸和挤压有关。
“这很简单,但在进行计算之前,我们不知道这是最强的相互作用,”Bernardi解释道。
在这篇论文中,研究人员表明,使用SVD方法压缩与电子-声子相互作用相关的基质为研究人员可能想要计算的材料的各种特性提供了准确的结果,包括电荷传输,自旋弛豫时间和超导体的转变温度。
Bernardi和他的团队正在将基于SVD的计算扩展到更广泛的材料相互作用,并开发以前认为不可能的高级计算。该团队还致力于将新的SVD方法添加到其开源Perturbo代码中,该软件包可帮助研究人员计算电子如何在材料中相互作用和移动。Bernardi说,这将使科学界的用户能够更快地预测与电子-声子相互作用相关的材料特性。
这篇论文的标题是“电子-声子相互作用的数据驱动压缩”。与Luo和Bernardi一起,该论文的合著者包括研究生Dhruv Desai(MS '22);Benjamin Chang (MS '20) 和 Jinsoo Park (Ph.D. '22),现在是芝加哥大学的博士后研究员。
更多信息: Yao Luo 等人,电子-声子相互作用的数据驱动压缩,物理评论 X (2024)。DOI: 10.1103/PhysRevX.14.021023
期刊信息: Physical Review X
相关问答
【孤对 电子 如何 计算 和 应用 】作业帮[最佳回答]公式;二分之一(A-XB)A是中心原子的价电子数也就是最外层电子数.X是西格玛键也就是配对原子个数B是配对原子可以还可以容纳的电子数举个例子例如H20...
化合物的 电子 怎么算稍微具体点,例如氢氧根离子,氢气分子,水...[最佳回答]如果是不带电的物质比如水,碳酸钙你就把每个原子的电子数相加就可以如果是带电的比如氢氧根,钠离子就是对应原子的电子数再加上得到的电子或者失去...
按 计算 机处理数据的方式、使用分类、规模和处理能了分别分为几种?1.按信息的形式和处理方式可分类:(1)电子数字计算机:所有信息以二进制数表示。(2)电子模拟计算机:内部信息形式为连续变化的模拟电压,基本运算部件为...1...
电子 货币按照支付方式的不同可划分为哪些类型电子支付按方式分类可以分为因特网环境下的电子支付和非因特网环境下的电子支付。前者包括网上银行和电子货币,后者是指自动柜货机ATM、销售终端POS。电子支...
【怎么 计算 化学反应中 电子 的得失?比如说Fe+2HCI=FeCI2+H2↑...[最佳回答]其实这个问题涉及到氧化还原反应方程式的配平.氧化还原的本质就是得失电子,而得得失电子的具体表现就是化合价的升高和降低,现在我教你两句话,希望...
edi是什么意思的缩写[回答]EDI,全称ElectronicDataInterchange,中文名为电子数据交换。是指一种为商业或行政事务处理,按照一个公认的标准,形成结构化的事务处理或消息报文...
计算机 的技术指标有多种,而最主要的 应用 是哪种?_作业帮[最佳回答]在通常用语中,计算机一般指电子计算机中用的个人电脑.计算机是一种能够按照指令对各种数据和信息进行自动加工和处理的电子设备.它由多个零配件组成...
【怎样才能正确的数出化学方程式中的得失 电子 ?得失 电子 怎么...[最佳回答]数得失电子也就是看它这个元素几价.要乘以右下角的数字.如果是前面的系数那就是算相对原子质量了.在不同的化学式里有些元素的化合价是不同的,但有...
怎样求离子的价层 电子 对数?我知道分子的是价层 电子对 数目=那...[最佳回答]先求孤电子对数,阴离子:a=中心原子最外层电子数+电荷数阳离子:a=中心原子最外层电子数-电荷数然后再用孤电子对数=1/2(a-xb)最后加上中心原子&(...
按照使用网络类型分类 电子 商务可分为哪几种形式?电子商务的分类及模式1.按商业活动运作方式分类(1)完全电子商务:即可以完全通过电子商务方式实现和完成整个交易过程的交易。(2)不完全电子...EDI是电子商...