算法案例PPT优秀课件8

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

-1 O 1 2 3
x
-1
f(2.5)=0.25>0,即f(2)·f(2.5)<0,
故近似解在区间(2,2.5)内.
通过依次取区间中点的方法,将根所在的区间逐 步缩小,并列出表格:
区间 (2,3) (2,2.5) (2.25,2.5) (2.375,2.5) (2.375,2.4375)
区间中点的值 2.5 2.25
2、不断二分解所在的区间
若 x 1 (a ,b )不 , f( 妨 a ) 0 ,f( 设 b ) 0
(1)若 (2)若
f (ab) 0,由
2
f (ab) 0 ,由
2
f (a) 0,则
f (b) 0,则
xx11((aa,2ab2,bb))
(3)若 f (ab) 0,则
孙子的解法是:
先从3和5、3和7、5和7的公倍数中相应地找出分别被7、5、3除均余1的 较小数15、21、70.即
15÷7=2……余1, 21÷5=4……余1, 70÷3=23……余1. 再用找到的三个较小数分别乘以被7、5、3除所得的余数的积连加, 15×2+21×3+70×2=233. 最后用和233除以3、5、7三个除数的最小公倍数. 233÷105=2……余23, 这个余数23就是合乎条件的最小数.
顺序结构及框图表示
1.顺序结构: 依次进行多个处理的结构称为 顺序结构.
2.顺序结构的流程图
语句A 语句B
顺序结构是最简单、 最基本的算法结构,语句与 语句之间,框与框之间是按 从上到下的顺序进行的.它 是由若干个处理步骤组成 的,这是任何一个算法都离 不开的基本结构.
选择结构也叫条件结构,是指在算法中通过对条件的 判断,根据条件是否成立而选择不同流向的算法结构.
据函数图象,我们发现:
y
f(2)=-1<0,f(3)=2>0,即f(2)·f(3)<0,
由二次函数的单调性表明图象在区间(2,3)内仅
穿越x轴一次,即方程在区间(2,3)内有惟一解.
可以将区间一分为二,使包含根的区间长度缩小
下面计算2,3的平均值(以下称之为区间的中点)
2.5所对应的函数值f(2.5),并进一步缩小根所在 的区间.
a1 b1.5
c0.001
Do x0(a+b)/2 f(a)a3-a-1 f(x0)x03-x0-1 If f(x0)=0 Then End Do If f(a)f(x0) <0 Then bx0 Else ax0 End If
Until |a-b|<c
End Do Print x0
如何依次检索正整数?
int(x)表示不超过x的最 大整数,例如int(2.7)=2,
Int(2)=2,int(-2,7)=-3.
该循环何时结束?
一个正整数m什么时候满足方程?
如何用自然语言描述该算法?
mod(a,b)表示a除以b的余数.
m2 While Mod (m,3)≠2 Or
算法案例2
楚水实验学校高二数学备课组
知识回顾 算法的概念:
一般而言,对一类问题的机械
的、统一的求解方法称为算法。
广义地说:为了解决某一问题而 采取的方法和步骤,就称之为算法。
流程图的概念
流程图:是由一些图框和流程线组成的,其中 图框表示各种操作的类型,图框中的文字和符 号表示操作的内容,流程线表示操作的先后次 序。
先判断,后执行: “Y”进入循环
开始 S←0
i←0
A
Y
p
N
当型循环
S←S+i
i<10
N 输出S
结束
i←i+1 Y
已学过的伪代码中的几种基本算法语句:
(1)赋值语句: 变量←表达式或变量或常数. (2)输入语句: Read a,b (3)输出语句: Print a,b (4)条件语句: If A Then
右图此结构中包含一个判断框, 根据给定的条件P是否成立而选择 执行A框或B框.无论P条件是否 成立,只能执行A框或B框之一, 不可能同时执行A框和B框,也不 可能A框、B框都不执行.
循环结构
开始
先执行,后判断:
S ←1
“N”进入循环
i←1
S←S+
1 i
i←i+1
i>100
Y 输出S
结束
A
N
N
p
Y
直到型循环
否则r Mod(a,b),a b,br,转S2.
S1 输入两个正整数a,b(a>b); S2 r Mod(a,b) S3 a b . S4 br, S5 若r不等于0,转S2 S6 输出最大公约数a.
开始
输入 a,b
b←r
a←b
Mod(a,b)≠0
N 输出b
r←Mod(a,b) Y
结束
每一次循环中所进行的是什么样的运算 ?
r←mห้องสมุดไป่ตู้d(a,b)
循环何时结束?下一次循环的输入整数应该是什么?
r =0
a←b b←r
这样交换数据的方式,前面我们学习过吗? 在求斐波拉契数列中的数
请用自然语言描述该算法!
S1 输入两个正整数a,b(a>b); . S2 若Mod(a,b)≠0,则输出最大公约数b,算法结束;
Mod (m,5)≠3 Or Mod (m,7)≠2 m m+1 End While Print m
Mod (m,3)在VBA中用m Mod 3表示
VBA程序中使用了符号“_”表示下 一行和该行是一个完整的语句
练习: 有3个连续的自然数,其中最小的能 被15整除,中间的能被17整除,最大的能被19 整除,求满足要求的一组三个连续的自然数.
第一组数中选出合乎“除以7余2”的较小数——30; 在第二组数中选出合乎“除以5余3”的较小数——63; 在第三组数中选出合乎“除以3余2”的较小数——35.
根据和的整除性,可知30+63+35=128一定是 一个 同时合乎“被3除余2,被5除余3,被7除余2”的数, 但是不一定是最小的.要得到合乎条件的最小数,只 要从中减去3、5、7的最小公倍数的若干倍,使得差 数小于这个最小公倍数就是了. 30+63+35-105=23.
B Else
C End If
A
Y
p
N
当型语句:
While p
循环体
End while
A
N
p
Y
直到型语句:
Do
循环体
Until p End Do
伪代码中的: (5)循环语句
(6)For语句:
当循环的次数已经确定,可用“For”语句表 示.
“For”语句伪代码格式: For I From “初值” To “终值” step “步
先判断,后执行: “Y”进入循环
开始 S←0
i←0
A
Y
p
N
当型循环
S←S+i
i<10
N 输出S
结束
i←i+1 Y
已学过的伪代码中的几种基本算法语句:
(1)赋值语句: 变量←表达式或变量或常数. (2)输入语句: Read a,b (3)输出语句: Print a,b (4)条件语句: If A Then
长” ……
End For
算法应用案例:
在我国古代算书《孙子算经》中有这样一个问题: “今有物不知其数,三三数之剩二,五五数之剩三, 七七数之剩二,问物几何?”意思是,“一个数除以 3余2,除以5余3,除以7余2.求适合这个条件的最小 数.”这个问题称为“孙子问题”.
分别写出除数3、5、7的两两公倍数.
开始
输入 a,b r←Mod(a,b)
a←b
b←r
r=0
N
Y 输出a
结束
将自然语言描述的算法改写为伪代码!
Read a,b While Mod(a,b)≠0
rmod(a,b) ab br End While Print b
Read a,b Do
rmod(a,b) ab br Until r=0 Print a
右图此结构中包含一个判断框, 根据给定的条件P是否成立而选择 执行A框或B框.无论P条件是否 成立,只能执行A框或B框之一, 不可能同时执行A框和B框,也不 可能A框、B框都不执行.
循环结构
开始
先执行,后判断:
S ←1
“N”进入循环
i←1
S←S+
1 i
i←i+1
i>100
Y 输出S
结束
A
N
N
p
Y
直到型循环
算法案例3
楚水实验学校高二数学备课组
知识回顾:
用二分法求方程 f(x)=0(或g(x)=h(x))近似解的基本步骤:
1、寻找解所在区间 (1)图象法 先画出y= f(x)图象,观察图象与x轴的交点横坐标所处的范围; 或画出y=g(x)和y=h(x)的图象,观察两图象的交点横坐标的 范围。
(2)函数法 把方程均转换为 f(x)=0的形式,再利用函数y=f(x)的有关性质 (如单调性)来判断解所在的区间及解的个数。
2.375 2.4375
中点对应的函数值 0.25
-0.4375 -0.10938 0.066406
直到区间两个端点值精确到0.1时的近似值都是2.4, 所以方程的一个近似解为2.4.
注:由于确定近似值的方法不太方便,因此用计 算机实现二分法时,常常不是给出精度,而是给 出误差范围!
问题:如果方程f(x)=0在某区间[a,b]内有一个根,如何利用二分 法搜索符合误差限制c的近似解?
148与37的最大共约数是37 8251与6105的最大共约数是37
以上我们求最大公约数 的方法就是辗转相除法,也 叫欧几里德算法,它是由欧 几里德在公元前300年左右 首先提出的.
练习:用辗转相除法求204与 85的最大公约数.
你能把辗转相除法求最大共约数的过程,写成算法吗?
该算法中,要用到什么主要的算法结构? 循环结构
算法案例1
知识回顾 算法的概念:
一般而言,对一类问题的机械 的、统一的求解方法称为算法。
广义地说:为了解决某一问题而采取 的方法和步骤,就称之为算法。
流程图的概念
流程图:是由一些图框和流程线组成的, 其中图框表示各种操作的类型,图框中 的文字和符号表示操作的内容,流程线 表示操作的先后次序。
顺序结构及框图表示
8251=6105×1+2146;
观察上面的式子,你有什么发现?你的发现, 对我们解决“求8251与6105的最大公约数”的 问题有什么帮助?
求8251与6105最大共约数 化归 6105=2146×2+1813;
求6105与2146最大共约数
2146=1813×1+333; 1813=333×5+148; 333=148×2+37; 148=37×4+0.
B Else
C End If
A
Y
p
N
当型语句:
While p
循环体
End while
A
N
p
Y
直到型语句:
Do
循环体
Until p End Do
伪代码中的: (5)循环语句
(6)For语句:
当循环的次数已经确定,可用“For”语句表 示.
“For”语句伪代码格式: For I From “初值” To “终值” step “步
1.顺序结构:依次进行多个处理的结构称为 顺序结构.
2.顺序结构的流程图
语句A 语句B
顺序结构是最简单、 最基本的算法结构,语句与 语句之间,框与框之间是按 从上到下的顺序进行的.它 是由若干个处理步骤组成 的,这是任何一个算法都离 不开的基本结构.
选择结构也叫条件结构,是指在算法中通过对条件的 判断,根据条件是否成立而选择不同流向的算法结构.
2
x1

a
b 2
对(1)、(2)两种情形再继续二分解所在的区间.
3、根据精确度得出近似解
当 x1(m,n),且m, n根据精确度得到的近似值均为同
一个值P时,则x1≈P ,即求得近似解。
算法应用案例:
例1 用二分法求方程x2-2x-1=0的近似解(精确到0.1).
首先画出函数f(x)=x2-2x-1的图象,从图象上可以发现: 方程x2-2x-1=0的一个根x1在区间(-1,0)内,另一个根x2在区间(2,3)内.
S1
取[a,b]的中点
x0=
a
2
b
,将区间一分为二;
S2 若f(x0)=0,则x0就是方程的根,转S4, 否则当f(a)·f(x0)<0,则x∈(a, x0),用x0代替b, 否则用x0代替a;
S3 若|a-b|不小于c,转S1;
S4 输出x0 .
问题:写出用区间二分法求方程x3-x-1=0 在区间[1,1.5]内的一个近似解(误差不超过 0.001)的一个算法.
长” ……
End For
引入课题
在小学,我们学过求两个正整数的最大公约 数的方法,先用两个数公有的质因数连续去除, 一直到所得的商是互质数为止,然后把所以的除 数乘起来,例如,求18与30的最大共约数:
2 18 30 3 9 15
35
所以,18与30的最大共约数是:2×3=6.
利用找公约数的方法来求最大公约数, 如果公约数比较大而且根据我们的观察又不 能得到一些公约数,我们又应该怎样求它们 的最大公约数?比如求8251与6105的最大公 约数?
相关文档
最新文档