§1 算法的基本思想
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
解:具体算法步骤如下: 具体算法步骤如下: (1)首先确定最小的满足除以3余2的正整数:2. 首先确定最小的满足除以3 的正整数: (2)依次加3就得到所有除以3余2的正整数:2,5,8, 依次加3就得到所有除以3 的正整数: 11,14,17,20,23,26,29,32,35,38,41,44,47, 11,14,17,20,23,26,29,32,35,38,41,44,47, 50,53,56…… 50,53,56…… (3)在上列数中确定最小的满足除以5余3的正整数:8. 在上列数中确定最小的满足除以5 的正整数: (4)然后依次加上15,得到8,23,38,53……,显然这 然后依次加上15,得到8 23,38,53……, 15 …… 些数既满足除以3 又满足除以5 些数既满足除以3余2,又满足除以5余3. (5)在第4步得到的一列数中,找出满足除以7余4的最小 在第4步得到的一列数中,找出满足除以7 数:53.这就是我们要求的数. 53.这就是我们要求的数. 这就是我们要求的数
解:算法步骤如下: 算法步骤如下: 1.先将840进行素因数分解: 1.先将840进行素因数分解:840 = 23 × 3 × 5 × 7; 先将840进行素因数分解 2.然后将1764进行素因数分解: 2.然后将1764进行素因数分解: 1764 = 22 × 32 × 7 2 ; 然后将1764进行素因数分解 3.确定他们的公共素因数2,3,7; 3.确定他们的公共素因数2,3,7; 确定他们的公共素因数2,3,7 4.确定公共素因数的指数:公共素因数2,3,7的指数分别为 4.确定公共素因数的指数:公共素因数2,3,7的指数分别为 确定公共素因数的指数 2,3,7 2,1,1; 5.最大公约数为: 5.最大公约数为: 22 × 31 × 71 = 84. 最大公约数为
作为家里的一员, 作为家里的一员,在平时分担一些力所能及的事是我们 应尽的义务,你每天都帮家里做家务吗?你会烧开水吗? 应尽的义务,你每天都帮家里做家务吗?你会烧开水吗?请 写出你在家中烧开水的过程. 写出你在家中烧开水的过程. 1、往壶内注水; 往壶内注水; 2、点火加热; 点火加热; 3、观察:如果水开,则停止烧火,否则继续烧火; 观察:如果水开,则停止烧火,否则继续烧火; 3”,直至水开. 4、如果水未开,重复过程 “3”,直至水开. 如果水未开,
7.判断117是否为素数: 7.判断117是否为素数:否. 判断117是否为素数 8.确定117的最小素因数: 8.确定117的最小素因数:3. 确定117的最小素因数 9.判断39是否为素数: 9.判断39是否为素数:否. 判断39是否为素数 10.确定39的最小素因数: 10.确定39的最小素因数:3. 确定39的最小素因数 936=2× 936=2×2×2×3×3×13 936=2× 936=2×2×2×3×39
第二章 算法初步
§1 算法的基本思想
1.了解算法的含义,形成算法的初步印象, 1.了解算法的含义,形成算法的初步印象,体会算法是 了解算法的含义 解决问题的“机械”程序,并能在有限步内解决问题; 解决问题的“机械”程序,并能在有限步内解决问题; 2.能够用自然语言叙述算法; 2.能够用自然语言叙述算法; 能够用自然语言叙述算法 3.掌握正确的算法应满足的条件; 3.掌握正确的算法应满足的条件; 掌握正确的算法应满足的条件 4.会写出简单问题的算法. 4.会写出简单问题的算法. 会写出简单问题的算法
随着计算科学和信息技术的飞速发展, 随着计算科学和信息技术的飞速发展,算法的思想 已经渗透到社会的方方面面.在以前的学习中, 已经渗透到社会的方方面面.在以前的学习中,虽然没有 出现算法这个名词,但实际上在数学教学中已经渗透了 出现算法这个名词, 大量的算法思想,如四则运算的过程、求解方程的步骤 大量的算法思想,如四则运算的过程、 等等.完成这些工作都需要一系列程序化的步骤, 等等.完成这些工作都需要一系列程序化的步骤,这就是 算法的思想. 算法的思想.
成素因数的乘积.(4000以内的素数表见课本附录1) 成素因数的乘积.(4000以内的素数表见课本附录1) .(4000以内的素数表见课本附录 解:算法步骤如下: 算法步骤如下: 1.判断936是否为素数: 1.判断936是否为素数:否. 判断936是否为素数 2.确定936的最小素因数:2. 2.确定936的最小素因数: 确定936的最小素因数 3.判断468是否为素数: 3.判断468是否为素数:否. 判断468是否为素数 4.确定468的最小素因数: 4.确定468的最小素因数:2. 确定468的最小素因数 5.判断234是否为素数: 5.判断234是否为素数:否. 判断234是否为素数 6.确定234的最小素因数: 6.确定234的最小素因数:2. 确定234的最小素因数 936=2× 936=2×2×2×117 936=2× 936=2×2×234 936=2×468 936=2×
例4 “韩信点兵”问题.韩信是汉高祖刘邦手下的大将,他英勇善战, “韩信点兵”问题.韩信是汉高祖刘邦手下的大将,他英勇善战, 韩信点兵 智谋超群,为建立汉朝立下了汗马功劳.据说他在点兵的时候, 智谋超群,为建立汉朝立下了汗马功劳.据说他在点兵的时候,为了 保住军事机密,不让敌人知道自己部队的实力, 保住军事机密,不让敌人知道自己部队的实力,采用下述点兵的方 法:先令士兵从1~3报数,结果最后一个士兵报2;再令士兵从1~5 先令士兵从1 报数,结果最后一个士兵报2 再令士兵从1 报数,结果最后一个士兵报3 又令士兵从1 报数,结果最后一个士兵报3;又令士兵从1~7报数,结果最后一个 报数, 士兵报4.这样,韩信很快就算出了自己部队的总人数. 士兵报4.这样,韩信很快就算出了自己部队的总人数.请设计一个算 4.这样 法,求出士兵至少有多少人? 求出士兵至少有多少人? 分析:从报数情况分析,总人数除以3 总人数除以5 分析:从报数情况分析,总人数除以3余2;总人数除以5余3;总人数 除以7 4.算法的第一步是将所有的除以 算法的第一步是将所有的除以3 的正整数找出来, 除以7余4.算法的第一步是将所有的除以3余2的正整数找出来,按从小 到大排成一列.第二步是从第一步的数列中找出除以5 到大排成一列.第二步是从第一步的数列中找出除以5余3的一列数,按 的一列数, 从小到大排成一列. 从小到大排成一列.最后在满足前两个条件的第二步数列中再找出除以 的一列数,这列数中最小的数,即为我们所求的数. 7余4的一列数,这列数中最小的数,即为我们所求的数.
算法是什么? 算法是什么? 算法可以理解为由基本运算及规定的运算顺序构成的 完整的解题步骤,或看成按要求设计好的、有限的、 完整的解题步骤,或看成按要求设计好的、有限的、确 切的计算序列,并且这样的步骤或序列能解决一类问题. 切的计算序列,并且这样的步骤或序列能解决一类问题. 现代意义上的“算法” 现代意义上的“算法”通常是指可以用计算机来解决 的某一类问题的程序或步骤. 的某一类问题的程序或步骤.
判断13是否为素数:13是素数,所以分解结束. 判断13是否为素数:13是素数,所以分解结束. 13是否为素数 是素数 分解结果是: 936=2× 分解结果是: 936=2×2×2×3×3×13
例3
设计一个算法, 840与1764的最大公因数. 设计一个算法,求840与1764的最大公因数. 的最大公因数
小结: 小结: 1、其实大部分事情都是按照一定的程序执行的,因此 其实大部分事情都是按照一定的程序执行的, 要理清事情的每一步. 要理清事情的每一步. 2、判断水是否烧开与是否继续烧火的过程是一个反馈 与判断的过程,因此有必要不断重复过程“ 与判断的过程,因此有必要不断重复过程“3”.
事实上,我们完成任何事,都要有步骤, 事实上,我们完成任何事,都要有步骤,合理安排步 骤,会达到事半功倍的效果.从我们数学的意义来讲,在解 会达到事半功倍的效果.从我们数学的意义来讲, 决某些问题时,需要设计出一系列可操作或可计算的步骤, 决某些问题时,需要设计出一系列可操作或可计算的步骤, 通过实施这些步骤来解决问题, 通过实施这些步骤来解决问题,我们通常把这些步骤称为 解决问题的一种算法.这种描述不是算法的定义, 解决问题的一种算法.这种描述不是算法的定义,但反映了 算法的基本思想. 算法的基本思想.
算法不同于求解一个具体问题的方法, 算法不同于求解一个具体问题的方法,是这种方法 的高度概括.一个好的算法有如下要求: 的高度概括.一个好的算法有如下要求: 1、写出的算法,必须能解决一类问题(如一元二次方 写出的算法,必须能解决一类问题( 程求根公式),并且能重复使用. 程求根公式),并且能重复使用. ),并且能重复使用 2、算法过程要能一步一步执行,每步执行的操作,必 算法过程要能一步一步执行,每步执行的操作, 须确切,不能含混不清,而且在有限步能得出结果. 须确切,不能含混不清,而且在有限步能得出结果. 3、算法要简洁,要清晰可读,不能繁杂,易程序化. 算法要简洁,要清晰可读,不能繁杂,易程序化.
例5、写出以下问题的算法: 写出以下问题的算法: 一位商人有9枚银元,其中有1枚略轻的是假银元. 一位商人有9枚银元,其中有1枚略轻的是假银元.你能 用天平(不用砝码)将假银元找出来吗? 用天平(不用砝码)将假银元找出来吗?
1.把银元分成 把银元分成3 每组3 解: 1.把银元分成3组,每组3枚. 2.先将两组分别放在天平的两边.如果天平不平衡,那 先将两组分别放在天平的两边.如果天平不平衡, 边假银元就放在轻的那一组;如果天平左右平衡, 边假银元就放在轻的那一组;如果天平左右平衡,则假 银元就在末称的第3组里. 银元就在末称的第3组里. 3.取出含假银元的那一组,从中任取两枚银元放在天平 取出含假银元的那一组, 的两边.如果左右不平衡,则轻的那一边就是假银元; 的两边.如果左右不平衡,则轻的那一边就是假银元;如 果天平两边平衡,则末称的那一枚就是假银元. 果天平两边平衡,则末称的那一枚就是假银元.
例6 在函数的应用部分,我们学习了用二分法求方程f(x)=0 在函数的应用部分,我们学习了用二分法求方程f(x)=0 分析: 分析: 的近似解. 的近似解.如图所示 y 二分法的基本思想是: 二分法的基本思想是:将方程的有 解区间分为两个小区间, 解区间分为两个小区间,然后判断 解在哪个小区间; 解在哪个小区间;继续把有解的区 间一分为二进行判断, 间一分为二进行判断,如此周而复 始,直到求出满足精度要求的近似 解. O a x* b x
在电视台的某个娱乐节目中,要求参与者快速猜出物品的价格. 例1 在电视台的某个娱乐节目中,要求参与者快速猜出物品的价格. 主持人出示某件物品,参与者每次估算出一个价格, 主持人出示某件物品,参与者每次估算出一个价格,主持人只能回答 高了、低了或者正确.在某次节目中,主持人出示了一台价值在1000元 高了、低了或者正确.在某次节目中,主持人出示了一台价值在1000元 1000 以内的随身听,并开始了竞猜.下面是主持人和参与者的一段对话: 以内的随身听,并开始了竞猜.下面是主持人和参与者的一段对话:
说明: 说明: 1、算法实际上就是解决某一类问题的步骤和方法,在解 算法实际上就是解决某一类问题的步骤和方法, 决问题时形成的规律性的东西, 决问题时形成的规律性的东西,按照算法描述的规则与 步骤,一步一步地去做,最终便能解决问题. 步骤,一步一步地去做,最终便能解决问题. 2、算法的基本思想就是我们分析问题时的想法.由于想法 算法的基本思想就是我们分析问题时的想法. 不同、思考的角度不同,着手点不一样, 不同、思考的角度不同,着手点不一,同一问题存在不 同的算法,算法有优劣之分. 同的算法,算法有优劣之分. 3、从熟悉的问题出发,体会算法的程序化思想,学会用 从熟悉的问题出发,体会算法的程序化思想, 自然语言来描述算法. 自然语言来描述算法.
800元! 400元! 600元!
高了! 低了! 低了!
参与者
主持人 如果你是参与者,你接下来会怎么猜? 如果你是参与者,你接下来会怎么猜?
……
实际上,可以把过程概括如下: 实际上,可以把过程概括如下:
例2
在给定素数表的条件下,设计算法, 936分解 在给定素数表的条件下,设计算法,将936分解