学年高中数学苏教版必修三教学案第1章 14 算法案例含答案.docx
《学年高中数学苏教版必修三教学案第1章 14 算法案例含答案.docx》由会员分享,可在线阅读,更多相关《学年高中数学苏教版必修三教学案第1章 14 算法案例含答案.docx(13页珍藏版)》请在冰豆网上搜索。
学年高中数学苏教版必修三教学案第1章14算法案例含答案
问题1:
如何求12与20的最大公约数?
提示:
短除法.一般情况下数字不应过大.
问题2:
若求6750与3492的最大公约数,上述方法还奏效吗?
提示:
数值很大时短除法不方便用.
问题3:
对于问题1中12与20的最大公约数是4.若用20除以12余8,再用8去除12余4,再用4去除8余数为0,也可求得最大公约数为4.若对较大两数可否用此法求公约数?
提示:
可以.
1.孙子问题
(1)问题名称:
人们将“韩信点兵——孙子问题”这种问题的通用解法称为“孙子剩余定理”或“中国剩余定理”.
(2)问题思想:
“孙子问题”相当于求关于x,y,z的不定方程组
2.欧几里得辗转相除法
(1)含义:
公元前3世纪,欧几里得在《原本》第七篇中介绍了求两个正整数a,b(a>b)的最大公约数的方法,这种方法称为“欧几里得辗转相除法”.
(2)步骤:
计算出a÷b的余数r,若r=0,则b即为a,b的最大公约数;若r≠0,则把前面的除数b作为新的被除数,把余数r作为新的除数,继续运算,直到余数为0,此时的除数即为a,b的最大公约数.
3.两个常用函数
(1)Mod(a,b)表示a除以b所得的余数.
(2)Int(x)表示不超过x的最大整数.
1.由除法和减法的性质可知,对于任意两个正整数,辗转相除法或更相减损术总可以在有限步之后完成,故总能用这两种方法求出任意两个正整数的最大公约数.
2.辗转相除法的理论依据是:
由a=nb+r⇒r=a-nb得a、b与b、r有相同的公约数.
[例1] 有3个连续的正整数,其中最小的能被15整除,中间的能被17整除,最大的能被19整除,画出求满足要求的一组三个连续正整数的流程图,并写出伪代码.
[思路点拨] 设这三个数分别为m,m+1,m+2,则m满足的条件是Mod(m,15)=0且Mod(m+1,17)=0且Mod(m+2,19)=0.
[精解详析] 流程图:
伪代码:
m←2
WhileMod(m,15)≠0 or
Mod(m+1,17)≠0 or
Mod(m+2,19)≠0
m←m+1
EndWhile
Printm,m+1,m+2
[一点通]
解决此类问题的方法就是从m=2开始,对每一个正整数逐一检验,当m满足所有已知条件时,结束循环,输出m.
1.如图所示的流程图,输出的结果是________.
解析:
m=10时,不满足条件,则m←10+7.
m=17时,Mod(m,3)=2且Mod(m,5)=2成立,
故输出17.
答案:
17
2.下面一段伪代码的功能是________.
m←2
WhileMod(m,2)≠1 or
Mod(m,3)≠2 or
Mod(m,5)≠3
m←m+1
EndWhile
Printm
解析:
由代码含义可知,m满足的条件是除以2余1,除以3余2,除以5余3,又m逐个增大,故输出的m是满足条件的最小正整数.
答案:
求关于x、y、z的不定方程组
的最小正整数解
[例2] 设计用辗转相除法求8251与6105的最大公约数的算法,并画出流程图,写出伪代码.
[思路点拨] 按照辗转相除法的步骤设计算法、画流程图,根据流程图,写出伪代码.
[精解详析] 算法如下
S1 a←8251;
S2 b←6105;
S3 如果Mod(a,b)≠0,那么转S4,否则转S7;
S4 r←Mod(a,b);
S5 a←b;
S6 b←r,转S3;
S7 输出b.
流程图与伪代码:
[一点通] 辗转相除法是当大数被小数除尽时,结束除法运算,较小的数就是最大公约数.
3.下图表示的流程图,输出的结果是________.
解析:
第一次执行循环体:
r=34,a=119,b=34,第二次执行循环体r=17,a=34,b=17.
第三次执行循环体r=0,输出b=17.
答案:
17
4.求三个数168,56,264的最大公约数.
解:
先求168与56的最大公约数.
∵168=56×3,
故168与56的最大公约数是56.
再求56与264的最大公约数.
∵264=56×4+40,
56=40×1+16,
40=16×2+8,
16=8×2.
故56与264的最大公约数是8.
因此168,56,264的最大公约数是8.
[例3] (12分)设计用二分法求方程x3-2=0在区间[1,2]内的近似解(误差不超过0.005)的流程图,写出伪代码.
[思路点拨] 根据二分法求方程近似解的步骤画出流程图,然后根据流程图写出算法伪代码.
[精解详析] 流程图如图:
(6分)
伪代码如下:
a←1
b←2
c←0.005
Do x0←
fa←a3-2
fx0←
-2
Iffx0=0ThenExitDo
Iffafx0<0Then
b←x0
Else
a←x0
EndIf
Until|a-b|EndDo
Printx0
(12分)
[一点通] 针对这个类型的题目书写伪代码时一定要注意伪代码的具体格式,另外循环语句中一定包含有条件结构的语句.求高次方程近似解时,一定要给出精确度.
5.下面的流程图表示的算法的功能是________.
答案:
用二分法求方程x2-3x+1=0在区间[0,1]内的一个近似解(误差不超过0.001)
6.写出用区间二分法求方程x3-2x-3=0在区间[1,2]内的一个近似解(误差不超过0.001)的算法伪代码,并画出流程图.
解:
该问题的流程图如图所示.
伪代码:
Read a,b,c
Do
x0←
f(a)←a3-2a-3
f(x0)←x
-2x0-3
If f(x0)=0 ThenExitDo
If f(a)×f(x0)<0 Then
b←x0
Else
a←x0
EndIf
Until |a-b|<c
EndDo
Print x0
1.用辗转相除法求两个数最大公约数的操作过程是先用较大的数除以较小的数,得商和余数,再用除数除以余数,重复操作,直到余数为零.这时小数就是要求的最大公约数,终止循环的条件是余数为零.
2.用二分法求方程的近似解就是逐步把“解”所在的区间缩短,直到求出近似解或方程的解所在的区间长度小于误差为止.
课下能力提升(七)
一、填空题
1.用辗转相除法求294和84的最大公约数时,需要做除法的次数是________.
解析:
294=84×3+42,
84=42×2,
故需要做2次.
答案:
2
2.下列伪代码运行的一个结果是________.
m←2
WhileMod(m,4)≠2or
Mod(m,5)≠3or
Mod(m,7)≠3
m←m+1
EndWhile
Printm
解析:
此伪代码的功能是求
的最小正整数
∴m=38.
答案:
38
3.如图所示的流程图,输出的结果是________.
解析:
由86>68得a=18,b=68,由68>18得b=50,a=18;由50>18得b=32,a=18;由32>18得b=14,a=18;由18>14得a=4,b=14;由14>4得b=10,a=4;由10>4得b=6,a=4;由6>4得b=2,a=4;由4>2得a=2,b=2.满足a=b,输出2.
答案:
2
4.84和32的最小公倍数是________.
解析:
先求84和32的最大公约数.
84=32×2+20
32=20+12
20=12+8
12=8+4
8=4×2.
故84和32的最大公约数是4.
所以84和32的最小公倍数为
84×32÷4=672.
答案:
672
5.下列伪代码的运行结果是________.
解析:
此伪代码的功能是求两个正整数的最大公约数.a,b的值依次是:
(120,252)→(120,132)→(120,12)→(108,12)→(96,12)→(84,12)→(72,12)→(60,12)→(48,12)→(36,12)→(24,12)→(12,12),∴输出12.
答案:
12
二、解答题
6.已知如图所示的流程图(其中的m、n为正整数):
(1)这个算法的功能是什么?
(2)当m=286,n=91时,运行的结果是什么?
解:
(1)这个算法的功能是用辗转相除法求两个正整数的最大公约数.
(2)∵286=91×3+13,91=13×7,∴286与91的最大公约数是13.故运行结果为13.
7.试写出用二分法求方程x3+x2-1=0在[0,1]上的近似解的伪代码(精确度为0.01).
解:
伪代码如下:
a←0
b←1
ε←0.01
Do
x0←(a+b)/2
f(a)←a3+a2-1
f(x0)←x
+x
-1
If f(x0)=0ThenExitDo
If f(a)f(x0)>0 Then
a←x0
Else
b←x0
EndIf
Until|a-b|<ε
EndDo
Printx0
8.有一堆围棋子,5个5个地数余2,7个7个地数余3,9个9个地数余4,请画出求这堆围棋子共有多少个的流程图,并写出伪代码.
解:
流程图:
伪代码:
m←2
WhileMod(m,5)≠2 or
Mod(m,7)≠3 or
Mod(m,9)≠4
m←m+1
EndWhile
Printm