计算的发展:从算盘到电子计算机
这篇文章,我们来复盘一下计算的发展历史,从开始的扳手指到现在的电脑,以及整个过程的原因和解决方案。
从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协议
该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。
苹果iOS 18隐藏功能曝光:任何文本框都可进行数学计算
近日,苹果公司发布了iOS 18的开发者测试版,除了带来一系列官方公布的新功能外,还隐藏着一项令人惊喜的新特性——任何文本框都可进行数学计算。
在iOS 18中,苹果引入了全新的数学计算功能,使得用户可以在任何文本框中直接进行数学计算,而无需额外打开计算器应用。这一功能的加入,极大地提升了用户在聊天、备忘录、电子邮件等应用中的计算效率。
具体来说,用户只需在相应的文本框中输入数学表达式,如“3 + 5 * 2”,iOS 18便会自动识别并计算出结果。系统支持多种运算类型,包括加减乘除、括号运算、指数运算等,满足用户的日常计算需求。此外,用户还可以选择仅显示最终结果,或者将整个计算过程连同答案一起呈现,以便更好地理解和验证计算过程。
此外,iOS 18还优化了关机流程,在控制中心新增了电源快捷开关,使得关机操作更加便捷。
对于iPhone 15系列,iOS 18还特别增加了一项新功能:即使电量耗尽,手机仍然可以在屏幕上显示时间,并且可以刷NFC。
(8779228)
相关问答
【孤对 电子 如何 计算 和 应用 】作业帮[最佳回答]公式;二分之一(A-XB)A是中心原子的价电子数也就是最外层电子数.X是西格玛键也就是配对原子个数B是配对原子可以还可以容纳的电子数举个例子例如H20...
计算 机专业课程中的模拟电路及高等数学里面的微积分有什么用处?纯粹从功利角度以及计算机科学大部分研究方向来看,这两门课没用但是,微积分是肯定要学的,理工科大学生不学高等数学还叫大学生吗?学习微积分除了学到知识,...
互联网运用的是什么科学技术?_作业帮[回答]众所周知,电子计算机技术建立在二进制的基础之上,在计算机上,任何信息多可以转换成二进制的形式,而互联网就是建立在这些二进制数据的传输之上.电缆...
电子商务 专业有哪些课程主要学什么[回答]课程有:电子商务概论、经济学、管理学、会计学、运筹学、统计学、英语、市场营销学、现代企业运作、计算机基础与应用、C语言、网络与数据通讯技术...
广西大学 计算机 与 电子信息学院 怎么样?设有哪些专业? 申请方[回答]~接下来我为大家简单介绍一下我们广西大学的计算机与电子信息学院开设的专业以及研究情况专业设置:信息技术创新英才实验班-本科、计算机与网络技术...
应用电子技术 专业介绍[代码590202][回答]本专业培养德、智、体全面发展,掌握电子技术、信息技术及计算机应用技术的基础理论知识,具有较熟练的实际操作技能,能够从事电子设备及系统的生产维...
云 计算应用 于哪些领域?云计算重点应用领域发展趋势目前,云计算在中国主要行业应用还仅仅是“冰山一角”,但随着本土化云计算技术产品、解决方案的不断成熟,云计算理念的迅速推广普及...
超级 计算 机有什么用途?超级计算机指能够执行一般个人电脑无法处理的大资料量与高速运算的电脑,其基本组成组件与个人电脑的概念无太大差异,但规格与性能则强大许多,超级计算机正在加...
电子 技术 应用 主要学习什么?未来有什么前景?谢谢邀请。电子技术应用主要学习如下内容:计算机操作及应用,电子技术,电子原理,逻辑设计,电子线路设计与工艺,计算机网络技术,家电维修,电子电工,微机...谢...
求经过时间的 应用题 ,列式解答时可以用 电子 计时法列式吗?_作业帮[最佳回答]可以只要自己会转换就行分清小时和时“小时”是时间“时”是时刻