第2章 算法实例 ---枚举算法(穷举算法).

Slides:



Advertisements
Similar presentations
质数和合数 中心小学 顾禹 人教版小学五年级数学下册 一、激趣导入 提示:密码是一个三位 数,它既是一个偶数, 又是 5 的倍数;最高位是 9 的最大因数;中间一位 是最小的质数。你能打 开密码锁吗?
Advertisements

1 、谁能说说什么是因数? 在整数范围内( 0 除外),如果甲数 能被乙数整除,我们就说甲数是乙数的 倍数,乙数是甲数的因数。 如: 12÷4=3 4 就是 12 的因数 2 、回顾一下,我们认识的自然数可以分 成几类? 3 、其实自然数还有一种新的分类方法, 你知道吗?这就是我们今天这节课的学.
因数与倍数 2 、 5 的倍数的特征
摆一摆,想一想. 棋子个数数的个数 摆出的数 、 10 2 、 11 、 20 3 、 12 、 21 、 30 4 、 13 、 22 、 31 、 40 5 、 14 、 23 、 32 、 41 、
3 的倍数特征 抢三十
质数和合数 富县北教场小学 潘小娟 1 、什么叫因数? 2 、自然数分几类? 奇数和偶数. 3 、自然数还有一种新的分类方法, 就是按一个数的因数个数来分. 4 、写出 1—20 的因数。 前置性作业.

3 的倍数的特征 的倍数有 : 。 5 的倍数有 : 。 既是 2 的倍数又是 5 的倍数有 : 。 12 , 18 , 20 , 48 , 60 , 72 , , 25 , 60 ,
因数与倍数 2 、 5 的倍数的特征 绿色圃中小学教育网 扶余市蔡家沟镇中心小学 雷可心.
2 和 5 的倍数的特征 运动热身 怎样找一个数的倍数? 从小到大写出 2 的倍数( 10 个): 写出 5 的倍数( 6 个) 2 , 4 , 6 , 8 , 10 , 12 , 14 , 16 , 18 , 20 5 , 10 , 15 , 20 , 25 , 30.
一、 一阶线性微分方程及其解法 二、 一阶线性微分方程的简单应用 三、 小结及作业 §6.2 一阶线性微分方程.
2.5 函数的微分 一、问题的提出 二、微分的定义 三、可微的条件 四、微分的几何意义 五、微分的求法 六、小结.
3.5 元 / 千克 2.6 元 / 千克 买 3 千克 要多少钱? = (元)
第四单元 100 以内数的认识
2 、 5 的倍数的特征 玉田百姓. 1 、在 2 、 3 、 5 、 8 、 10 、 12 、 25 、 40 这几个数中, 40 的因数有几个? 5 的倍数有几个? 复习: 2 、在 6 、 10 、 12 、 15 、 18 、 20 这几个数中,哪些数 是 2 的倍数?哪些数是 5 的倍数?
因数与倍数 2 、 5 、 3 的倍数的特 征 新人教版五年级数学下册 执教者:佛山市高明区明城镇明城小学 谭道芬.
冀教版四年级数学上册 本节课我们主要来学习 2 、 3 、 5 的倍数特征,同学们要注意观察 和总结规律,掌握 2 、 3 、 5 的倍 数分别有什么特点,并且能够按 要求找出符合条件的数。
做个百数表. 把表格填完整,仔细观察,你还有什么新发现 ?
2 , 5 的倍数的特征. 我们可以先写出几个 5 的 倍数来看看。 对,先研究小范围的数, 再进行推广验证。
人教新课标一年级数学下册. 教学目标 1. 初步掌握 100 以内数的顺序。 2. 初步会比较 100 以内数的大小。 3. 初步结合具体事物,使同学们 感 受 100 以内数的意义,会用 100 以 内的数表示日常生活中的事物, 并进行简单的估计和交流。
1 、会利用数射线比较 100 以内数的大小。 2 、通过解决与生活相关的实际问题, 使 学生感受数的大小比较在现实生活中的 重要作用, 发展学生的应用意识。 3 、充分感受比较策略的多样化, 学会比 较数的大小, 培养学生的数感。
新人教版四年级数学上册 笔算除法 森村中心学校 江国飞 1 、口算。 360÷30= 840÷40= 200÷50= 270÷90= 40÷20= ÷40=3600÷19≈30 90÷30=3 900÷31≈30.
第四单元 100 以内数的认识
重庆市九龙坡区走马小学 邓华. 一、复习导入,揭示课题 下面哪些数是 2 的倍数?哪些数是 5 的倍数? 2,5的倍数的特征:只看个位上数就能进行判断。 2的倍数:个位上是0,2,4,6,8的数。
100 以内数的认识 10 个一是十 10 个十是一百 10 个一是十 10 个十是一百 数一数 从 35 数到 42 从 88 数到 100.
练一练: 在数轴上画出表示下列各数的点, 并指出这些点相互间的关系: -6 , 6 , -3 , 3 , -1.5, 1.5.
2 、 5 的倍数特征 集合 2 的倍数(要求) 在百数表上依次将 2 的倍数找出 并用红色的彩笔涂上颜色。
循环模式 流程图的画法: 条件 y 循环体 伪代码: n Do while 条件 循环体 loop 每个循环模式的结构都是一个入口,一个出口.
10.2 立方根.
第4章 循环结构 程序设计 本章主讲 赵家刚、李俊萩 计算机编程导论.
四种命题 2 垂直.
1.1.3四种命题的相互关系 高二数学 选修2-1 第一章 常用逻辑用语.
探索三角形相似的条件(2).
初中数学八年级下册 (苏科版) 10.4 探索三角形 相似的条件(2).
高中算法与程 序设计 教学建议 ---循环结构部分
2 = ? 根號的近似值 … (不是整數,分數和有限的小數) 重點:
循环结构 NEAU ACM-ICPC TEAM 主讲人:NEAU_ACM_Team.
第4章 程序控制结构与算法基础.
走进编程 程序的顺序结构(二).
§2 求导法则 2.1 求导数的四则运算法则 下面分三部分加以证明, 并同时给出相应的推论和例题 .
VB程序设计语言 主讲教师:王 杨.
数列.
Visual Basic 程序设计教程.
课题:1.5 同底数幂的除法.
2.6 直角三角形(二).
3.2 勾股定理的逆定理.
第四章 四边形性质探索 第五节 梯形(第二课时)
12.2全等三角形的判定(2) 大连市第三十九中学 赵海英.
1.2 有理数 第1课时 有理数 伏家营中学 付宝华.
《计算机应用基础》 第9章 程序设计基础(二).
第4章 Excel电子表格制作软件 4.4 函数(一).
用穷举法设计程序 南京师范大学 教育技术系 倪佳慧
3.16 枚举算法及其程序实现 ——数组的作用.
输入语句 输出语句 赋值语句 条件语句 循环语句
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
十几减5、4、3、2.
問題解決與流程圖 高慧君 台北市立南港高中 2006年12月22日.
一元二次不等式解法(1).
2、5的倍数的特征 马郎小学 陈伟.
分数再认识三 真假带分数的练习课.
3.1无理数2.
2、5、3的倍数的特征.
3.13 选择结构程序设计初步.
任选四个不同的数字,组成一个最大的数和一个最小的数。用最大的数减去最小的数。用所得结果的四位数重复上述过程,最多七步,必得6174
五 循环结构程序设计 厦大附中信息技术.
找 因 数.
鸡兔同笼(续) ——选择结构.
1.2.3 循环语句.
H a S = a h.
3.3.2 两点间的距离 山东省临沂第一中学.
Presentation transcript:

第2章 算法实例 ---枚举算法(穷举算法)

2、请同学心中想一个两位整数,大家来猜这个数是多少? 课的导入 | 出示问题 出示问题(两个小游戏) 1、从一副扑克牌中抽一张牌,请大家猜这张牌是几,最多猜几次可猜中? 2、请同学心中想一个两位整数,大家来猜这个数是多少?

枚举算法(穷举算法)概念: 当问题的所有可能解的个数不太多时一一列举出该问题 所有可能的解,并在逐一列举的过程中,检查每个可能的解是否是问题的真正解,若是,就采纳这个解,否则抛弃它。(在列举过程中,既不能遗漏,也不应重复) 。 课的导入 | 引出课题 枚举算法流程:

枚举算法运用关键: 首先列举所有可能解(即确定可能解的范围) 其次检验是否是真正解(即要找出判断正确解的条件) 不遗漏,不重复

输出1--100以内所有能被5整除的数,并统计个数。 课的深入 | 问题 1 输出1--100以内所有能被5整除的数,并统计个数。 开始 输出 c c0 n<=100 cc+1 输出n y n 结束 nn+5 n5 计数器 算法1 分析: 变量n: n依次取5、10、15……100来生成真正解并输出 变量C:计数器,初值为0,找到一个真正解,计数器加1

输出1--100以内所有能被5整除的数,并统计个数。 课的深入 | 问题 1 输出1--100以内所有能被5整除的数,并统计个数。 c0 n1 n<=100 cc+1 y n 开始 输出 c 结束 n mod 5=0 nn+1 输出n 算法2(穷举法) 分析: 循环初值:n=1 循环范围:1-100 条件:能被5整除 变量n的作用:既用它控制循环次数,又是一个可能解。

输出100—200之间所有能被5或7整除的数并统计个数。 测试反馈 | 问题 输出100—200之间所有能被5或7整除的数并统计个数。 (学生四人一组集体讨论,分别写出流程图并请1学生修改下面流程图) c0 n? n<=? cc+1 y n 开始 输出 c 结束 ? nn+1 算法2(穷举法) 输出n 1.exe 循环初值: 循环范围: 条件: 100 100-200 n mod 5=0 or n mod 7=0 伪代码

? 猜数(模糊不清的标签问题)课本48页例2 课的深入 | 问题 2 循环初值:? 循环范围:? 条件:? 每一变量的作用: ? 分析: (要求学生带问题自己看书掌握解决方法并进行流程图填空) 循环初值:? 循环范围:? 条件:? 每一变量的作用: ? ? 分析: 程序自动执行过程:

小结并布置课外作业 总结 枚举算法解决问题的关键是一定要列举出所有可 能的解,不能遗漏但也不能重复。对于一个能用枚 举法解决的问题,首先要确定循环的范围,其次要 找出判断正确解的条件,这样才能得到正确的算法。 上机作业 2、用穷举法思想来求解鸡兔同笼问题:2.exe 有30个头,90只脚,问鸡、兔各有多少个? 分析 3、 4、运行猜数课件,体会程序执行过程及穷举算法思想。

n mod 57=0 or n mod 67=0,则为真解。 分析: 设单据上的数为n=1XX47,模糊不清的数码XX可能是00~99,因此,n 可能的解是:10047到19947。采用循环结构,让变量j从0—99依次取值,则:n=10047+j*100,其中若 n mod 57=0 or n mod 67=0,则为真解。

1、 选择模式结束 n = 100 c = 0 Do While n <= 200 c0 cc+1 y n 开始 输出 c 结束 ? nn+1 输出n n = 100 c = 0 Do While n <= 200 If (n Mod 3 = 0 or n Mod 7 = 0) Then c = c + 1 Print n End If n = n + 1 Loop Print c 选择模式结束

2、用穷举法思想来求解鸡兔同笼问题:2.exe 有30个头,90只脚,问鸡、兔各有多少个? x = 1 Do While x < 30 y n 开始 结束 xx+1 输出x x = 1 Do While x < 30 If 2 * x + 4 * (30 - x) = 90 Then Print x, 30 - x End If x = x + 1 Loop 设鸡为 x只,则 循环初值:? 循环范围:? 条件:?

3、 分析: 引入一变量i,让i从1开始依次增1,每次都检查i是否为m和n的公约数,是则存入变量gcd中,由于i 是从小到大变化的,所以gcd中最后得到的数必定是两数的最大公约数。 循环初值:? 循环范围:? 条件:?

枚举算法运用关键: 首先要确定循环的范围(即可能解的范围) 其次要找出判断正确解的条件

二、枚举算法实例: 1: 输出100内能被3或7整除的数并 统计个数。 2:猜数(1XX47 课本48页例2) 1: 输出100内能被3或7整除的数并 统计个数。 2:猜数(1XX47 课本48页例2) 3:从键盘上输入两个自然数,计算出它们的最大 公约数。 4:打印输出由1,2……8,9这九个数字组成的所有可能的二位数n(允许各位数字是相同的数,如:11,22…..) 5:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如,153是一水仙花数,因为153=13+53+33 6:猜数 ( 1X4X7 课本80页练习8) 7:包装问题(课本46页例1)

大家练 1: 输出100---200之间能被3或7整除的数并 统计个数。 2.exe 循环初值:n=1 循环范围:1---100 1: 输出100---200之间能被3或7整除的数并 统计个数。 开始 n=1 C=0 n<=100 输出 c y n 结束 输出n; c=c+1 n=n+1 n是否满足条件? 2.exe 循环初值:n=1 循环范围:1---100 条件:n mod 3=0 or n mod 7=0

3:从键盘上输入两个自然数,计算出它们的最大 公约数。 分析:引入一变量i,让i从1开始依次增1,每次都检查i是否为m和n的公约数,是则存入变量gcd中,由于i 是从小到大变化的,所以gcd中最后得到的数必定是两数的最大公约数。 流程图 4:打印输出由1,2……8,9这九个数字组成的所有可能的二位数n(允许各位数字是相同的数,如:11,22…..) 分析:a.个位数上的数字可以是哪几种数字?用变量i来表示。 b.十位数上的数字可以是哪几种数字?用变量j来表示。 c.找出二位数n与i,j之间的关系,提示:123=1*102+2*101+3*100 二位数n可记为j+10*i 流程图

j=1 i1 开始 i<=9 nj*10+i 输出n y n 结束 ii+1 j<=9 jj+1 说明:用双重循环操作来解决问题。当十位数j在外层循环每取得一定值之后,内层循环完整执行一遍,个位数i从1~9,从而获得不同的二位数n.然后继续执行外层循环,改变一个十位数j,直到j超出规定范围为止。内层循环作为外层循环体的一部分。 For语句

For j=1 to 9 for I=1 to 9 n=j*10+I print n next I Next j jj+1 99.exe 开始 i<=9 nj*10+i 输出n y n 结束 ii+1 j<=9 jj+1 For j=1 to 9 for I=1 to 9 n=j*10+I print n next I Next j 99.exe

5:猜数(一份单据中被涂抹的数字的推算 1X4X7 课本80页练习8) 流程图 分析:a.十位数上的数字可以是哪几种数字?用变量i来表示。 b.千位数上的数字可以是哪几种数字?用变量j来表示。 c.找出数n与i,j之间的关系:n=10407+1000j+10i 循环初值:n=10407 循环范围:10407---19497 条件:n mod 57=0 or n mod 67=0

j=0;c=0 i<=9 ii+1 jj+1 输出c n10407+1000j+10i y n 结束 ii+1 jj+1 输出c j<=9 i0 n是否是倍数 输出n ; c=c+1

打印“水仙花数” x = 100 Do While (x <= 999) a = x Mod 10 b = (x \ 10) Mod 10 c = x \ 100 If x = a ^ 3 + b ^ 3 + c ^ 3 Then Print x End If x = x + 1 Loop

6:直角三角形的一条直角边为a,斜边的最大长度为maxc,求所有满足条件的整数解。 流程图 分析:直角三角形三条边a,b,c均为整数,其中:一条直角边给定即为a,斜边C的最大值给定即为maxc,则有下列约束条件: 1. C的值在[a+1,maxc]之间; 2. 对于一个任何确定的C,b的值在[c-a+1,c-1]之间;

7:包装问题 包装600个变形金刚,要求是: (1)包装的规格分别是:小盒(每盒2个)、中盒(每盒5个)和大盒(每盒8个);(2)每种规格的盒数都不能为0 。 流程图 分析: 设600个变形金刚分别装入x个小盒、y个中盒和z个大盒,则必须有 2x+5y+8z=600 显然,x、y、z 值可能的变化范围应为: x: 1 到 (600-13)/2; y: 1 到 (600-10)/5; z: 1 到 (600-7)/8。 说明:用三重循环操作来解决问题。当x在最外层循环每取得一定值之后,第二层循环y要从1--118完整执行一遍,而当y在第二层循环每取得一定值后,最内层循环z要从1--74完整执行一遍。内层循环作为外层循环体的一部分。

i=1 ? 输出gcd y n 开始 结束 ii+1 gcdi 输入m,n i同时小于等于m,n i能同时被m,n整除

用For语句建立循环结构: For循环语句主要用于建立已知循环次数的循环结构。 For循环语句的格式为: For 循环变量=初值 TO 终值 [Step 步长] <语句块> Next 循环变量 例:输出S=1+2+3+…….+100的和。 S=0 : I=1 Do while I<=100 s=s+I I=I+1 Loop Print s S=0 For I=1 to 100 s=s+I Next I Print s