版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
编程模拟通过数数计算一位数加减法众所周知,人类的加减法计算能力不是与生俱来的,而是通过数数能力发展而来的。本文探讨了人类是如何通过数数学会一位数加减法的,并在计算机上编程模拟了这个计算过程。示例计算5-3:左手伸出5个手指头,右手伸出3个手指头,接下来重复执行操作【左手和右手分别收回一根手指头】,直到右手的手指头全部收回为止。最后观察左手手势,左手伸出的手指头的数量,就是减法运算的结果。首先说明一下,在进行这一系列操作之前,儿童还得先学会通过扳手指来数数,也就是在头脑里的数量概念与手势(伸出的手指头个数)之间建立起关联。比如看到自己的左手或右手伸出两根手指头,就联想到数量概念2。这里涉及一个问题:人类的数量概念是与生俱来的吗?一些研究表明人类天生能够分辨4及以下的数量,也有的研究者认为人类天生能够分辨的最大数量是5。此问题不在我们的讨论范围之内,因此在本实验中我将0——10的数量概念(仅自然数)写进程序里,假定我们的AI程序已经理解这些数量概念(不管是天生就会的还是后天习得的)以及它们之间的先后顺序关系,并省略了人类在手势与数量概念之间建立起联系的过程。本实验涉及的基本思维操作有如下几种:1.求下一个数:给定一个数,求出它的下一个数。例如3的下一个数是4。2.求上一个数:给定一个数,求出它的上一个数。例如3的上一个数是2。3.循环操作:重复执行某一操作,直到某个条件成立。有些读者可能以为我今天是要给大家展示如何在计算机上模拟人类儿童扳手指算术的操作。错了!我要模拟的是儿童心算一位数加减法的过程。人类之所以要从扳手指开始学习算术,是因为心算加减法的能力并不是与生俱来的,儿童必须通过数具体的实物来学会算术,多次重复操作以后,儿童将这个方法记在了心里,于是后面就不再需要具体实物,便可在头脑里完成加减法运算了。前者是形象思维,后者是抽象思维,我的演示程序模拟的对象是后者。在我设计的思维函数库的基本概念类型里,有一个概念类型叫做“指针”,指针仅仅用来指向一个概念对象,并记录这一指向关系。思维函数库体系里的“指针”和C语言里的指针有个区别,前者的本质不是内存地址,因为我们建立这套数据结构体系的目的是模拟人类智能,
而人类思维中根本没有“内存地址”这一概念,所以我也不需要去考虑它。
指针概念类只有一个属性字段,这个属性字段叫做“目标”,表示指针指向的概念对象是什么。建立两个指针型变量,一个叫做“计算结果指针”,一个叫做“倒数器指针”。以刚才提到的计算5-3为例,在初始状态下,计算结果指针指向被减数5,倒数器指针指向减数3。然后重复执行如下操作:计算结果指针指向前一个数,同时倒数器指针也指向前一个数。直到倒数器指针指向0时才终止循环。循环终止后,计算结果指针所指向的数,就是减法运算结果。过程如下图所示:儿童通过多次扳手指算数积累了大量的经验,并通过自省、归纳得知:伸出一根手指,那么这个手所表示的数就会变成之前所表示的数的下一个数,相当于加1;收回一根手指,那么这个手所表示的数就会变成之前所表示的数的上一个数,相当于减1。对我们的程序而言,伸出一根手指头,就相当于让指针指向下一个数字所对应的位置;收回一根手指头,就相当于让指针指向上一个数字所对应的位置。那么,如果遇到5以上的数字该怎么办?一只手只有五个手指头,这时候就需要用到两只手了,但是,假设使用两只手来表示一个数,则计算减法需要用到三只手,而人类根本没有那么多的手,怎么办?其实,儿童在多次学习扳手指计算减法以后,他就会在头脑里模拟各种手势,这样就不需要用到那么多手了。以计算7-3为例,左手伸出5根手指头,右手伸出2根手指头,这样两只手伸出的手指个数总和为7,表示被减数是7。至于减数3,就不需要用手势表示了,直接在头脑里模拟“伸出3个手指头,每次收回一个手指头,当所有手指头被收回时终止计算”的操作即可。在循环过程中,如果右手的所有手指都已收回,则收回左手的手指,最后计算结束时左右手的手指头个数之和就是减法运算的结果。整个过程如下图所示:多次训练以后,儿童不再已经能够将“左手伸出5根手指的样子”和“右手伸出2根手指的样子”看作一个整体,并将其与数字概念7联系到一起。由于本实验程序不模拟人类扳手指数数的行为,故7-3的计算方法还是跟刚才的5-3一样,使用“计算结果指针”和“倒数器指针”来记录中间运算结果,如下图所示:加法的计算,也和上述方法类似,唯一不同的地方就是加法运算的时候,计算结果的指针是指向下一个数的位置。不过,对于人类而言,数数加法的计算方法有时候还更加简单,比如计算2+3,左手伸出2根手指头,右手伸出3根手指头,两只手放在一起,由于此时眼睛看到的手势与一只手伸出5根手指头的手势十分接近,这时人脑就会联想到数量概念5,这时便可直接得出加法计算结果。
现在,我们将视线转向程序源代码。我在程序中创建了0——10的自然数概念,并定义了这些数值概念所对应的位置。我将这些位置全部放到一个数值概念空间(digitSpace)里面。在下面这张图所展示的代码里,我建立了任意相邻的两个数字之间的先后顺序关系,并定义了一个函数findDigit,它可以根据数值查找出这个数值在概念空间中的位置。有些人问:有必要搞这么复杂吗?你先定义一个位置,然后声明此位置对应的数值,最后再建立两个位置之间的先后顺序关系,还不如直接建立两个数值概念之间的先后顺序关系来得方便,这里的“位置”概念似乎显得多余了。我对此做出解释:元素本身是不存在先后顺序关系的,我们说的先后顺序关系,指的是元素在空间中所处的位置的先后顺序关系。脱离空间而谈论元素先后顺序,是没有意义的。我举个例子:这是地铁10号线的站点示意图。乘坐翠柏路方向的地铁10号线,和睦站的下一站是北大桥站,我们可以说北大
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年直播平台主播分成合同协议
- AIGC技术革命与游戏产业投资价值重塑
- 会计专升本试卷及答案
- 铜的地缘政治风险与供应链重构
- 2026年学校文明礼仪知识竞赛活动方案
- 2026年生产管理专业笔试模拟题
- 2026年街道公共基础知识
- 2026年一建市政工程案例精习题集
- 2026年侵犯知识产权民事责任
- 黎城高一语文红色诗文培训试卷
- 2026上半年生态环境部卫星环境应用中心招聘15人笔试备考题库及答案解析
- 2025年建筑资料员招聘笔试试题及答案
- 2026年新入团考试知识大全(必考知识点+完整题库+标准答案)
- 2026杭州市萧山区招录高学历事业人员50人笔试参考题库及答案解析
- 2026年东莞市卫生健康系统事业单位人员招聘考试备考试题及答案详解
- 2026广东深圳市国资委面向市内选调公务员5人笔试备考试题及答案解析
- 2026春统编版(新教材)小学道德与法治一年下册《学先锋 做先锋》教学课件
- 2026年1月浙江省高考(首考)思想政治试题(含答案)
- 地基水文地质勘察方案
- 隔离护栏安装施工方案1212
- 地灾评估专家
评论
0/150
提交评论