算法案例ppt课件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
25
2.秦九韶算法计算多项式的值及程序设计; 3.数字排序法中的常见的两种排序法直接插入排序 法与冒泡排序法; 4.冒泡法排序的计算机程序设计; 5.注意循环语句的使用与算法的循环次数,对算法 进行改进。
26
高考链接
1(2009年广东卷文)某篮球队6名主力队员在最 近三场比赛中投进的三分球个数如下表所示:
第一步:输入两个正整数a,b(a>b); 第二步:若a不等于b ,则执行第三步;否则转
到第五步; 第三步:把a-b的差赋予r; 第四步:如果b>r, 那么把b赋给a,把r赋给b;否
则把r赋给a,执行第二步; 第五步:输出最大公约数b。 算法步骤!
12
程序
程序框图
INPUT “a,b=“;a,b WHILE a<>b
按照算法步 骤来求解!
10
解: 98-63=35 63-35=28 35-28=7 28-7=21 21-7=14 14-7=7
(98,63) =(63,35) =(35,28)
=(28,7) =(21,7) =(14,7) =(7,7) = 7
所以,98和63的最大公约数等于7。
11
更相减损术算法描述:
m=n
n=r
r=0? 是
输出m 结束

7
《九章算术》——更相减损术
算理:可半者半之,不可半者,副置分母、子之数, 以少减多,更相减损,求其等也,以等数约之。
第一步:任意给定两个正整数;判断他们是否都是 偶数。若是,则用2约简;若不是则执行第二步。
第二步:以较大的数减较小的数,接着把所得的差 与较小的数比较,并以大数减小数。继续这个操作, 直到所得的减数和差相等为止,则这个等数就是所 求的最大公约数。
新课导入
方法: 先用两个公有的质因数连续去除,一直
除到所得的商是互质数为止,然后把所有 的除数连乘起来。
1
2
知识要 点
辗转相除法(欧几里得算法) :
所谓辗转相除法,就是对于给定的两 个数,用较大的数除以较小的数。若余数 不为零,则将余数和较小的数构成新的一 对数,继续上面的除法,直到大数被小数 除尽,则这时较小的数就是原来两个数的 最大公约数。
要求多项式的值,应该先算最内层的一次多项式的值,即
v1 an x an1
然后,由内到外逐层计算一次多项式的值,即
v2 v1x an2
v3 v2 x an3
vn vn1x a0
这种将求一个n次多项式f(x)的值转化成求n个一次多项式的值的 方法,称为秦九韶算法。
15
例2 已知一个五次多项式为
35
36
)
上数字与k的幂的乘积之和的形式。
aHale Waihona Puke an1 a1a0(k ) an k n an1 k n1
a1
k1
a0
k
0 (10)
其它进制数化成十进制数公式
21
提示
二进制: 在电子计算机中,数是以二进制的形式
表示的。二进制数每个数位只可能取两个不 同的数码,0和1。 二进制数与十进制数的转换:
22
顺为是统计该6名队员在最近三场比赛 中投进的三分球总数的程序框图,所图中 判断框应填i≤6,输出s=a1+a2+a3+···+a6。
28
29
2(2009山东卷理)执行右边的程序框图,输出 的T=__3_0_。
开始
S=0,T=0,n=0
T>S

S=S+5
n=n+2 T=T+n

输出T 结束
30
解析: 按照程序框图依次执行为S=5,n=2,T=2;
n=n+1 v=x0 +a5-n PRINT “v=”;v END IF END
33
程序框图: 开始
输入f(x)的系数: a1,a2,a3,a4,a5
输入x0
n=1
v=a5
n≤5

否 输出v
结束
n=n+1
v=v x0+a5-n
34
习题答案
练习1.3(第36页) 1.(1) 45 ; (2) 98 ; (3) 24 ; (4) 17 ; 2. 2881.75; 3.略; 4.略。
19
总结
一般地,若k是一个大于1的整数,那么以k 为基数的k进制可以表示为一串数字连写在一起 的形式:
anan1 a1a0(k)(0 an k, 0 an1, , a1, a0 k).
例如: 七进制的13,写成13(7);二进制的10,写成10(2)
20
方法
若anan1
a1a0(
k
表示一个k进制数,请你把它写成各位
r=a-b IF b>r THEN a=b b=r ELSE a=r END IF WEND PRINT b END
开始
输入a,b a≠b? 是 否
r=a-b
a=r 否 r<b?是
a=b
b=r
输出b
结束
13
知识要 点
秦九韶算法
所谓秦九韶算法,就是求一个n次多项 式的值的方法。
14
f (x) ((an x an1)x an2 )x a1)x a0
所以,当x = 5时,多项式的值等于17255.2
你从中看到了怎 样的规律?怎么 用程序框图来描
述呢?
16
算法步骤: 第一步:输入多项式次数n、最高次项的系 数an和x的值。 第二步:将v的值初始化为an,将i的值初始化为1。
第三步:输入i次项的系数an-i。
第四步:v=vx +an-i, i=i+1。 第五步:判断i是否小于或等于n,若是,则返回第 三步;否则,输出多项式的值v。
(1)二进制数化为十进制数: 把二进制数110011(2)化为十进制数。
110011(2) 1 25 1 24 0 23 0 22 1 21 1 20
32 16 0 0 2 1 =51 上述方法可以推广为把k进制数化为十 进制数的算法。
23
(2)十进制数化为二进制数:
把89化为二进制数。 解:把上式各步所得的余数
17
开始 输入f (x)的系数: a0、a1、a2、a3、a4、a5
输入x0
n=0
v=a5
v= v·x0+a5-n
n < 5? 否 输出v
n=n+1 是
结束
18
进位制与基数:
进位制是人们为了计数和运算方便而约定的 计数系统。
“满几进一”就是几进制,几进制的基数就是几。
比如:
满二进一,就是二进制; 满十进一,就是十进制; 满十二进一,就是十二进制; 满六十进一,就是六十进制
S=10,n=4,T=2+4=6;S=15,n=6,T=6+6=12; S=20,n=8,T=12+8=20;S=25,n=10,T=20+10=30>S, 输出T=30。
31
随堂练习
1.用更相减损术求下列两数的最大公约数: (1)(225,135) 45 (2)(98,196) 98 (3)(72,168) 24 (4)(153,119) 17
从下到上排列, 得到89=1011001(2)
除2取余法
2 89 2 44 2 22
2 11 25 22 21 0
余数
1 0 0 1 1 0 1
可以推广为把十进制数化为k进制数的算 法,称为除k取余法。
24
课堂小结
1.辗转相除法与更相减损法: (1)都是求最大公约数的方法,计算上辗
转相除法以除法为主,更相减损术以减法 为主,计算次数上辗转相除法计算次数相 对较少,特别当两个数字大小区别较大时 计算次数的区别较明显。 (2)从结果体现形式来看,辗转相除法体 现结果是以相除余数为0而得到,而更相 减损术则以减数与差相等而得到的。
148=37×4+0
=(148,37) =37
显然37是148和37的最大公约数,也就是8251和
6105的最大公约数
4
辗转相除法算法步骤: 第一步:输入两个正整数m,n(m>n); 第二步:计算m除以n所得的余数r; 第三步:m=n,n=r; 第四步:若r=0,则m,n的最大公约数等于m;
否则转到第二步; 第五步:输出最大公约数m。
f (x) 5x5 2x4 3.5x3 2.6x2 1.7x 0.8
用秦九韶算法求这个多项式当x = 5的值。
解:将多项式变形:
f (x) ((((5x 2)x 3.5)x 2.6)x 1.7)x 0.8
按由里到外的顺序,依此计算一次多项式当x = 5时的值:
v0 5 v1 55 2 27 v2 275 3.5 138.5 v3 138.55 2.6 689.9 v4 689.95 1.7 3451.2 v5 3451.25 0.8 17255.2
32
2.设计利用秦九韶算法计算5次多项式
f(x) a5x5 a4x4 a3x3 a2x2 a1x a0
当 x x0时的值程序和的程序框图。
解:
INPUT “a1,a2,a3,a4,a5=”;a1,a2,a3,a4,a5 INPUT “x0=”;x0 n=1 v=a5 IF n<=5 THEN
3
求8251和6105的最大公约数。
过程 8251=6105×1+2146
6105=2146×2+1813
(8251,6105) =(6105,2146)
2146=1813×1+333
=(2146,1813)
1813=333×5+148
=(1813,333)
333=148×2+37
=(333,148)
8
知识要 点
更相减损术
所谓更相减损术,就是对于给定的两 个数,用较大的数减去较小的数,然后将 差和较小的数构成新的一对数,再用较大 的数减去较小的数,反复执行此步骤直到 差数和较小的数相等,此时相等的两数便 为原来两个数的最大公约数。
9
用更相减损术求98与63的最大公约数。 解析:由于63不是偶数,把98和63以大数减 小数,并辗转相减。
5
辗转相除法是一个反复执行直到余数等于0停止 的步骤,这实际上是一个循环结构。
用程序框图表示出过程
r=m MOD n m=n n=r
r=0?


6
程序框图
程序 INPUT “m,n=“;m,n DO
r=m MOD n m=n n=r LOOP UNTIL r=0 PRINT m END
开始
输入m,n r=m MOD n
队员i
1234
56
三分球个数 a1 a2 a3 a4 a5 a6
下图(右)是统计该6名队员在最近三场比赛中投进 的三分球总数的程序框图,则图中判断框应填 , 输出的s=_________ 。 (注:框图中的赋值符号“=”也可以写成“←”或“:
=”)
27
答案: i≤6, a1+a2+a3+···+a6 解析:
相关文档
最新文档