1.3 算法案例
1.3算法案例(进位制)(yong)
思考:生活最常见的进位制是什么?除此之外还有
哪些常见的进位制?请举例说明. • 最常见的进位制应该是我们数学中的十进制,比 如一般的数值计算,但是并不是生活中的每一种 数字都是十进制的. • 古人有半斤八两之说,就是十六进制与十进制的 转换. • 比如时间和角度的单位用六十进制, 计算“一打” 数值时是12进制的。 • 电子计算机用的是二进制 。
思考:其它进制是否也有类似的规律呢?
八进制
7342(8) =783+382+48+2 110011(2)=125+124+023 +022+12+1
二进制
一般地,若k是一个大于1的整数,那么以k为基 数的k进制可以表示为以下形式:
a n a n 1 a 1 ( k ) ( 0 a n k , 0 a 1 , , a n 1 k ).
a×82+b×8+c=c×72+b×7+a,得:63a+b﹣48c=0, b=3(16c﹣21a), 由此知b是三的倍数,且是整数, ∴b=0,3,6, 21 a 当b=0时,可得c= 1 6 又1≤a≤6,检验知,不存在符合条件的a使得c是整数,
当3时,得c=
当b=6时,得c=
21a 1 16
开始
输入a ,k,n b=0 i=1
把a的右数第i位数字赋给t b=b+t*ki-1 i=i+1
否
i>n
是
输出结果b 结束
三、十进制化为k进制 思考:既然,k进制转化为十进制有前述的方法与 相应的算法,那么十进数又是如何才能转化为k进 数呢? 回想:a=anan-1…a2a1(k) =ankn-1+an-1kn-2+ …+a2k+a1 =b
§1.3算法案例
为了区别进制,我们就用下 标(k)表示k进制数
an k
n1
an1 k
n 2
a3 k a2 k a1
2
下面我们来用一个具体的例子来分析:
例3.将二进制数110 011(2)化成十进制数
解 根据k进制数的实际意义,我们可以这样来转换:
110011(2) 1 2 1 2 0 2 0 2 1 2 1 2 1 32 1 16 1 2 1 51
已知一个5次多项式为
f ( x) 4x 2x 3.5x 2.6x 1.7 x 0.8
5 4 3 2
当
x5
用秦九韶算法求这个多项式的值。
根据秦几韶算法,把多项式改写成如下形式: f ( x) ((((4 x 2) x 3.5) x 2.6) x 1.7) x 0.8 按照从内到外的顺序,依次计算一次多项式当绵值: v0 4; v1 4 5 2 22; v2 22 3.5 113.5; v3 113.5 5 2.6 564.9; v4 564.9 5 1.7 2826.2; v5 2826.2 5 0.8 14130.2. 所以,当x 5时, 多项式的值等于14130.2.
3. 已知一个5次多项式为
f ( x) 5x 2x 3.5x 2.6x 1.7 x 0.8
5 4 3 2
用秦九韶算法求这个多项式当
x5
时的值。
思考:(1)上式计算时需要多少次乘法计 算?多少次加法计算? (2)在利用秦九韶算法计算n次多项式 当时需要多少次乘法计算和多少次加法计算?
f ( x) an xn an1xn1 an2 xn2 a1x a0 把一个多项式
【成才之路】高中数学 算法案例第1课时辗转相除法与更相减损术学案课件 新人教A必修3
人 教 A 版 数 学
(2)辗转相除法的算法分析: 由以上辗转相除法的原理可以发现,辗转相除法的基 本步骤是用较大的数除以较小的数,考虑到算法中的赋值 语句可以对同一变量多次赋值,我们可以把较大的数用变 量m表示,把较小的数用变量n表示,这样式子m=n·q+ r(0≤r<n)就是一个反复执行的步骤,因此可以用循环结构实 现算法.如图.
用更相减损术: 80-36=44, 44-36=8, 36-8=28, 28-8=20, 20-8=12, 12-8=4, 8-4=4. ∴80和36的最大公约数是4.
[点评] (1)辗转相除法是当大数被小数除尽时,结束 除法运算,较小的数就是最大公约数;更相减损术是当大 数减去小数的差等于小数时停止减法运算,较小的数就是 最大公约数.
二、解答题 5.写出从键盘任意输入两个正整数a,b,输出这两个 数的最小公倍数的算法,画出程序框图,写出算法语句.
[解析] 从键盘输入两数 a,b 后,先求两数的最大公 约数 k,再计算两数的最小公倍数 p=ak·b,输出 p 即可.
程序框图如右图. 程序为: INPUT “正整数 a,b=”;a,b
3.辗转相除法与更相减损术有着相同的算法依据,但 要注意运算过程的差别,辗转相除法的上一次运算的除数 和余数分别作为下一次运算的被除数和除数,其结果直至 余数为零得出.更相减损术在上一次运算结束后,比较减 数和差的大小,将大的作为下一次运算的被减数,小的作 为减数,直至出现相等数时得到结果.
由此可见,二者算法是相似的.主要区别在于,辗转 相除法进行的是除法运算,即辗转相除,更相减损术进行 的是减法运算,即辗转相减,但其实质都是一个不断的递 归过程.另外两者在算法设计上有一个重要的区别点,辗 转相除法,下一次进行相除时,由上一次的除数和余数直 接相除即可.而更相减损术下一次相减前必须有一个判断 大小的过程,以区别谁做被减数.这些内容都是应特别注 意的关键环节.
1.3算法案例(一)辗转相除法
练习:
• 教材48页——1
程序框图
开始 输入m,n
①
否
求m除以n的余数r
m<n? 是
m=n t=m n=r
m=n n=t
r=0? 是 输出m
否
①
结束
程序语言
INPUT m,n IF n>m THEN t=m m=n n=t END IF DO r=m MOD n m=n n=r LOOP UNTIL r=0 PRINT m END
例1、用辗转相除法 求8251与6105的最大公因数
8251=6105×1+2146 6105=2146×2+1813
2146=1813×1+333 1813=333×5+148
333=148×2+37 148=37×4 8251与6105的最大公因数是37
辗转相除法:
给定两个正数,用 较大的数 除以 较小的数 ,
1.3算法案例(一)
辗转相除法
复习提问:
小学学过的求两个数的最大公约数的方法:
先用两个数公有的 质因数 连续去除,
一直除到所得的商是 互质数 为止,
然后把所有的除数 连乘 起来.
例如:求18与30的最大公约数.
2 3 18 9 3 30 15 5
所以18与30的最大公约数是2×3=6
1、辗转相除法
求得 商 和 余数 ,若余数不为一对数继续上面
的除法,直到大数被小数除尽,这时的 较小数
就是原来两数的最大公约数。
练习:
• 教材:45页——1
2、辗转相除法计算的程序框图及程序
算法步骤: • 第一步,给定两个正整数m,n. • 第二步,比较m,n的大小,若n>m则交换 m,n,否则直接执行下一步. • 第三步,计算m除以n所得的余数r. • 第四步,m=n,n=r. • 第五步,若r=0,则m,n的最大公约数等于m; 否则,返回第三步.
1.3 算法案例1---辗转相除法与更相减损术 8
1.3 算法案例1.3 算法案例——案例1 辗转相除法与更相减损术8**学习目标**1.理解辗转相除法与更相减损术求最大公约数的方法。
2.把辗转相除法与更相减损术的方法转换成程序框图与程序语言.**要点精讲**1.辗转相除法例如,求两个正数8251和6105的最大公约数。
分析与解:8251与6105两数都比较大,而且没有明显的公约数,可以考虑用两数中较大的数除以较小的数,求得商和余数:8251=6105×1+2146显然8251与6105的公约数也必是2146的约数,同样6105与2146的公约数也必是8251的约数, 所以8251与6105的最大公约数也是6105与2146的最大公约数。
6105=2146×2+1813,2146=1813×1+333,1813=333×5+148333=148×2+37,148=37×4+0则37为37与148的最大公约数,也是148与333的最大公约数,也是333与1813的最大公约数,也是1813与2146的最大公约数,也是2146与6105的最大公约数。
所以,2146与6105的最大公约数是37。
以上我们求最大公约数的方法就是辗转相除法。
也叫欧几里德算法,它是由欧几里德在公元前300年左右首先提出的。
2.更相减损术我国早期也有解决求最大公约数问题的算法,就是更相减损术。
在《九章算术》中记载了更相减损术求最大公约数的步骤:可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也,以等数约之。
翻译为:(1)任意给出两个正数;判断它们是否都是偶数。
若是,用2约简;若不是,执行第二步。
(2)以较大的数减去较小的数,接着把较小的数与所得的差比较,并以大数减小数。
继续这个操作,直到所得的数相等为止,则这个数(等数)就是所求的最大公约数。
**范例分析**例1.试分别用辗转相除法和更相减损术求840与1764、440与556的最大公约数。
人教版高中数学必修三课件:1.3 算法案例(共55张PPT)
解:用辗转相除法求最大公约数:612=468×1+144,468=144×3+36,144=36×4,即612
和468的最大公约数是36. 用更相减损术检验:612和468均为偶数,两次用2约简得153和117,153-117=36,11736=81,81-36=45,45-36=9,36-9=27,27-9=18,18-9=9,所以612和468的最大公约数为
转化为求n个一次多项式的值.
预习探究
知识点二 进位制
1.进位制:进位制是为了计数和运算方便而约定的记数系统,约定“满k进一”就 是 k进制 ,k进制的基数(大于1的整数)就是 k . 2.将k进制数化为十进制数的方法:先把k进制数写成各位上的数字与k的幂的乘积之和 的形式,再按照十进制数的运算规则计算出结果. 3.将十进制数化为k进制数的方法是 除k取余法 .即用k连续去除十进制数所得 的 商 ,直到商为零为止,然后把各步得到的余数 倒序 写出.所得到的就是相应的k 进制数. 4.k进制数之间的转化:首先转化为十进制数,再转化为 k进制数.
第一章 算法初步
1.3 算法案例 第2课时 秦九韶算法与进位制
预习探究
知识点一 秦九韶算法
1.秦九韶算法是我国南宋数学家秦九韶在他的著作《数书九章》中提出的一 个用于计算多项式值的方法. 2.秦九韶算法的方法: 把一个n次多项式f(x)=anxn+an-1xn-1+…+a1x+a0 改写成下列的形式: f(x)=(anxn-1+an-1xn-2+…+a1)x+a0= ((anxn-2+an-1xn-3+…+a2)x+a1)x+a0 =…=
1.3算法案例
(c)情感态度与价值观 1.通过阅读中国古代数学中的算法案例,体会中 国古代数学对世界数学发展的贡献。 2.在学习古代数学家解决数学问题的方法的过程 中培养严谨的逻辑思维能力,在利用算法解决数学问题 的过程中培养理性的精神和动手实践的能力。 二、教学重难点 重点:理解辗转相除法与更相减损术求最大公约数 的方法。 难点:把辗转相除法与更相减损术的方法转换成程 序框图与程序语言。 三、学法 在理解最大公约数的基础上去发现辗转相除法与更 相减损术中的数学规律,并能模仿已经学过的程序框图 与算法语句设计出辗转相除法程序框图与算法程序。
二、教学重难点 重点:各进位制表示数的方法及各进位制 之间的转换 难点:除k去余法的理解以及各进位制之 间转换的程序框图的设计 三、学法 在学习各种进位制特点的同时探讨进位制 表示数与十进制表示数的区别与联系,熟悉各 种进位制表示数的方法,从而理解十进制转换 为各种进位制的除k去余法。
[问题1]我们常见的数字都是十进制的, 但是并不是生活中的每一种数字都是十进制的. 比如时间和角度的单位用六十进位制,电子计 算机用的是二进制.那么什么是进位制?不同的 进位制之间又有什么联系呢? 进位制是人们为了计数和运算的方便而 约定的一种记数系统,约定满二进一,就是二 进制;满十进一,就是十进制;满十六进一,就 是十六进制;等等. “满几进一”,就是几进制,几进制的基数就是几. 可使用数字符号的个数称为基数.基数 都是大于1的整数.
案例1 辗转相除法与更相减损术
一、三维目标 (a)知识与技能 1.理解辗转相除法与更相减损术中蕴含的数学原 理,并能根据这些原理进行算法分析。 2.基本能根据算法语句与程序框图的知识设计完 整的程序框图并写出算法程序。 (b)过程与方法 在辗转相除法与更相减损术求最大公约数的学习 过程中对比我们常见的约分求公因式的方法,比较它 们在算法上的区别,并从程序的学习中体会数学的严 谨,领会数学算法计算机处理的结合方式,初步掌握 把数学算法转化成计算机语言的一般步骤。
第一章 1.3 算法案例:辗转相除法、秦九韶算法
3,答案:C
返回
• 4.用秦九韶算法求f(x)=3x?+4x?+5x? +6x?+7x?+8x+1,当x=0.4时的值, 需进行乘法运算和加法运算的次数分别为 ( ) • A. 6 6 B. 5 6 • C.6 5 D.6 12 • 解析:改写多项多f(x)=(((((3x+4)x+5)x+ 6)x+7)x+8)x+1,则需要6次乘法和6次加 法. • 答案:A
返回
课堂练习
2.用辗转相除法求294和84的最大公约数时,需要 做除法的次数是( ) A.1 B. 2 C.3 D. 4 3.用秦九韶算法求多项式的值,可用哪种结构的算 法实现( ) A.顺序结构 B.条件结构 C.循环结构 D.A、B两种 • 2,解析:由294=84×3+42,84=42×2知,共需 做2次除法. • 答案:B
返回
法二:更相减损术:
因为378与90都是偶数. 所以用2约简得189和45. 189-45=144,144-45=99, 99-45=54,54-45=9, 45-9=36,36-9=27, 27-9=18,18-9=9.
所以378与90的最大公约数为2×9=18.
返回
[例2]
用秦九韶算法求多项式
1.3 算法案例 辗转相除法、秦九韶算法
返回
预习思考
• 1,用辗转相除法求80和36的最大公约数, 并用更相减损术检验所得结果.
• 2,用秦九韶算法求多项式f(x)=2x4-6x3 -5x2+4x-6在x=5时的值.
返回
[例1]
用辗转相除法求80和36的最大公约数,并
用更相减损术检验所得结果. [自主解答] 用辗转相除法:
返回
1.秦九韶算法的步骤
返回
2.应用秦九韶算法计算多项式的值应注意的问题 (1)要正确将多项式的形式进行改写. (2)计算应由内向外依次计算. (3)当多项式函数中间出现空项式,要以系数为零的
高中数学人教A版必修3课件:1.3 算法案例
1.3 算法案例
题型1 辗转相除法与更相减损术
4.分别用辗转相除法和更相减损术求36和80的最大公约数.
解
辗转相除法:
80=36×2+8,36=8×4+4,8=4×2.
故36和80的最大公约数是4.
更相减损术:
80-36=44,44-36=8,36-8=28,28-8=20,
20-8=12,12-8=4,8-4=4.
解析
111÷2=55……1,55÷2=27……1,27÷2=13……1,13÷2=6……1, 6÷2=3……0,3÷2=1……1,1÷2=0……1, 故111(10)=1101111(2).故选C.
1.3 算法案例
题型3 进位制
11.把十进制数189化为四进制数,则末位数字是( B )
A.0
B.1
1.3 算法案例
刷基础
题型3 进位制
13.十六进制数与十进制数的对应如下表:
十 六 进 1 2 3 4 5 6 7 8 9 10 A B C D E F 制 数 十 进 制 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 数
例如:A+B=11+12=16+7=F+7=17(16),所以A+B的值用十六进制表示就等于17(16).
f(x)=anxn+an-1xn-1+…+a1x+a0的具体函数值,运用常规方法计算出结果最多需要n次加法和
n(n 2
1)
次乘法,而运用秦九韶算法由内而外逐层计算一次多项式的值的算法至多需要n次加法和n次乘法.对于计
算机来说,做一次乘法运算所用的时间比做一次加法运算要长得多,所以此算法极大地缩短了CPU运算的
A.2
B.3
C.4
D.5
高中数学必修三1.3算法案例-辗转相除法
1734=816×2+102
816=102×8
2)再求102与1343的最大公约数
1343=102×13+17
102=17×6
所以17为102与1343的最大公约数
所以17为1734、816、1343这三个数的最大公约数
板
书
设
计
第1.3节算法案例-----辗转相除法
............................... ................................... ...............
课后作业
P45练习:1.
P48习题1.3A组:1.
课
后
反
思
1.辗转相除法的思想2.辗转相除法算法框图3.例题讲解
................................ ................................... ...............
............................... ................................... ...............
2.基本能根据算法语句与程序框图的知识设计完整的程序框图并写出算法程序。
(b)过程与方法
在辗转相除法求最大公约数的学习过程中体会我们常见的约分求公因式的方法,,并从程序的学习中体会数学的严谨,领会数学算法计算机处理的结合方式,初步掌握把数学算法转化成计算机语言的一般步骤。
(c)情态与价值
1.通过阅读中国古代数学中的算法案例,体会中国古代数学对世界数学发展的贡献。
PRINT m
END
课堂练习:1.求两数4081与20723的最大公约数.
算法案例(完整版)
例2 已知10b1(2)=a02(3),求数字a, b的值.
10b1(2)=1×23+b×2+1=2b+9. a02(3)=a×32+2=9a+2. 所以2b+9=9a+2,即9a-2b=7.
故a=1,b=1.
小 结
1. k进制数使用0~(k-1)共k个数字, 但左侧第一个数位上的数字(首位数字) 不为0. 2.用 an an-1 a2 a1(k ) 表示k 进制数,其中k称为基数,十进制数不标 注基数. 3. 把k进制数化为十进制数的一般算式 是: an an-1 a2 a1(k )
第一步,输入a和n的值. 第二步,令b=0,i=1. i-1 b 第三步, = b + ai ´ 2 , i=i+1. 第四步,判断i>n 是否成立.若是,则输 出b的值;否则,返回第三步.
同样地,把k进制数 a = an an-1 a2 a1(k )
化为十进制数b的算法和程序框图如何设 计? 第一步,输入a,k和n的值. 第二步,令b=0,i=1.
“更相减损术”在中国古代数学专著《 九章算术》中记述为:
可半者半之,不可半者,副置分母、 子之数,以少减多,更相减损,求其等 也,以等数约之.
例1 分别用辗转相除法和更相减损 术求168与93的最大公约数. 辗转相除法:168=93×1+75,
93=75×1+18, 75=18×4+3, 18=3×6.
a=rnrn-1„r1r0(2)
知识探究(二):十进制化k进制的算法
思考1:根据上面的分析,将十进制数a化 为二进制数的算法步骤如何设计? 第一步,输入十进制数a的值. 第二步,求出a除以2所得的商q,余数r. 第四步,若q≠0,则a=q,返回第二步; 否则,输出全部余数r排列得到 的二进制数.
人教a版必修三:《1.3算法案例(1)》ppt课件(322页)
明目标、知重点
填要点、记疑点
主目录
探要点、究所然
当堂测、查疑缺
探要点、究所然
§1.3(一)
探究点二:更相减损术
思考 2 (1)用更相减损术可以求两个正整数 m,n 的最大公约数,那么用什么逻辑结 构来构造算法?其算法步骤如何设计?
答 (1)用循环结构设计算法,算法如下:
第一步,任意给定两个正整数m,n(m>n). 第二步,计算 m-n 所得的差 k. 第三步,比较n与k的大小,其中大者用m表示,小者用n表示. 第四步,若m=n,则m,n的最大公约数等于m;否则,返回第二步.
第一章 算法初步
§1.3 算法案例(一)
本节知识目录
§1.3(一)
明目标、知重点
算法 案例 (一)
填要点、记疑点
探究点一 探究点二 探究点三
辗转相除法 更相减损术 秦九韶算法的基本思想
探要点、究所然
当堂测、查疑缺
明目标、知重点
填要点、记疑点
主目录
探要点、究所然
当堂测、查疑缺
明目标、知重点
§1.3(一)
明目标、知重点
填要点、记疑点
主目录
探要点、究所然
当堂测、查疑缺
探要点、究所然
§1.3(一)
探究点二:更相减损术
(2)该算法的程序框图如何表示?该程序框图对应的程序如何表述?
答 程序框图: 程序:
INPUT m,n WHILE m< >n k=m-n IF n>k THEN m=n n=k ELSE m=k END IF WEND PRINT m END
明目标、知重点 填要点、记疑点
主目录
探要点、究所然
当堂测、查疑缺
山东省高中数学《1.3 算法案例》教案1 新人教A版必修3
1.3 算法案例整体设计教学分析在学生学习了算法的初步知识,理解了表示算法的算法步骤、程序框图和程序三种不同方式以后,再结合典型算法案例,让学生经历设计算法解决问题的全过程,体验算法在解决问题中的重要作用,体会算法的基本思想,提高逻辑思维能力,发展有条理地思考与数学表达能力.三维目标1.理解算法案例的算法步骤和程序框图.2.引导学生得出自己设计的算法程序.3. 体会算法的基本思想,提高逻辑思维能力,发展有条理地思考与数学表达能力.重点难点教学重点:引导学生得出自己设计的算法步骤、程序框图和算法程序.教学难点:体会算法的基本思想,提高逻辑思维能力,发展有条理地思考与数学表达能力. 课时安排3课时教学过程第1课时案例1 辗转相除法与更相减损术导入新课思路1(情境导入)大家喜欢打乒乓球吧,由于东、西方文化及身体条件的不同,西方人喜欢横握拍打球,东方人喜欢直握拍打球,对于同一个问题,东、西方人处理问题方式是有所不同的.在小学,我们学过求两个正整数的最大公约数的方法:先用两个数公有的质因数连续去除,一直除到所得的商是互质数为止,然后把所有的除数连乘起来. 当两个数公有的质因数较大时(如 8 251 与6 105),使用上述方法求最大公约数就比较困难.下面我们介绍两种不同的算法——辗转相除法与更相减损术,由此可以体会东、西方文化的差异.思路2(直接导入)前面我们学习了算法步骤、程序框图和算法语句.今天我们将通过辗转相除法与更相减损术来进一步体会算法的思想.推进新课新知探究提出问题(1)怎样用短除法求最大公约数?(2)怎样用穷举法(也叫枚举法)求最大公约数?(3)怎样用辗转相除法求最大公约数?(4)怎样用更相减损术求最大公约数?讨论结果:(1)短除法求两个正整数的最大公约数的步骤:先用两个数公有的质因数连续去除,一直除到所得的商是两个互质数为止,然后把所有的除数连乘起来.(2)穷举法(也叫枚举法)穷举法求两个正整数的最大公约数的解题步骤:从两个数中较小数开始由大到小列举,直到找到公约数立即中断列举,得到的公约数便是最大公约数.(3)辗转相除法辗转相除法求两个数的最大公约数,其算法步骤可以描述如下:第一步,给定两个正整数m,n.第二步,求余数r:计算m除以n,将所得余数存放到变量r中.第三步,更新被除数和余数:m=n,n=r.第四步,判断余数r是否为0.若余数为0,则输出结果;否则转向第二步继续循环执行.如此循环,直到得到结果为止. 这种算法是由欧几里得在公元前300年左右首先提出的,因而又叫欧几里得算法.(4)更相减损术我国早期也有解决求最大公约数问题的算法,就是更相减损术. 《九章算术》是中国古代的数学专著,其中的“更相减损术”也可以用来求两个数的最大公约数,即“可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也.以等数约之.”翻译为现代语言如下:第一步,任意给定两个正整数,判断它们是否都是偶数,若是,用2约简;若不是,执行第二步.第二步,以较大的数减去较小的数,接着把所得的差与较小的数比较,并以大数减小数,继续这个操作,直到所得的数相等为止,则这个数(等数)或这个数与约简的数的乘积就是所求的最大公约数.应用示例例1 用辗转相除法求8 251与6 105的最大公约数,写出算法分析,画出程序框图,写出算法程序.解:用两数中较大的数除以较小的数,求得商和余数:8 251=6 105×1+2 146.由此可得,6 105与2 146的公约数也是8 251与6 105的公约数,反过来,8 251与6 105的公约数也是6 105与2 146的公约数,所以它们的最大公约数相等.对6 105与2 146重复上述步骤:6 105=2 146×2+1 813.同理,2 146与1 813的最大公约数也是6 105与2 146的最大公约数.继续重复上述步骤:2 146=1 813×1+333,1 813=333×5+148,333=148×2+37,148=37×4.最后的除数37是148和37的最大公约数,也就是8 251与6 105的最大公约数.这就是辗转相除法.由除法的性质可以知道,对于任意两个正整数,上述除法步骤总可以在有限步之后完成,从而总可以用辗转相除法求出两个正整数的最大公约数.算法分析:从上面的例子可以看出,辗转相除法中包含重复操作的步骤,因此可以用循环结构来构造算法.算法步骤如下:第一步,给定两个正整数m,n.第二步,计算m除以n所得的余数为r.第三步,m=n,n=r.第四步,若r=0,则m,n的最大公约数等于m;否则,返回第二步.程序框图如下图:程序:INPUT m,nDOr=m MOD nm=nn=rLOOP UNTIL r=0PRINT mEND点评:从教学实践看,有些学生不能理解算法中的转化过程,例如:求8 251与6 105的最大公约数,为什么可以转化为求6 105与2 146的公约数.因为8 251=6 105×1+2 146,可以化为8 251-6 105×1=2 164,所以公约数能够整除等式两边的数,即6 105与2 146的公约数也是8 251与6 105的公约数.变式训练你能用当型循环结构构造算法,求两个正整数的最大公约数吗?试画出程序框图和程序.解:当型循环结构的程序框图如下图:程序:INPUT m,nr=1WHILE r>0r=m MOD nm=nn=rWENDPRINT mEND例2 用更相减损术求98与63的最大公约数.解:由于63不是偶数,把98和63以大数减小数,并辗转相减,如下图所示.98-63=3563-35=2835-28=728-7=2121-7=1414-7=7所以,98和63的最大公约数等于7.点评:更相减损术与辗转相除法的比较:尽管两种算法分别来源于东、西方古代数学名著,但是二者的算理却是相似的,有异曲同工之妙.主要区别在于辗转相除法进行的是除法运算,即辗转相除;而更相减损术进行的是减法运算,即辗转相减,但是实质都是一个不断的递归过程.变式训练用辗转相除法或者更相减损术求三个数324,243,135的最大公约数.解:324=243×1+81,243=81×3+0,则324与243的最大公约数为81.又135=81×1+54,81=54×1+27,54=27×2+0,则 81 与 135的最大公约数为27.所以,三个数324、243、135的最大公约数为27.另法:324-243=81,243-81=162,162-81=81,则324与243的最大公约数为81.135-81=54,81-54=27,54-27=27,则81与135的最大公约数为27.所以,三个数324、243.135的最大公约数为27.例3 (1)用辗转相除法求123和48的最大公约数.(2)用更相减损术求80和36的最大公约数.解:(1)辗转相除法求最大公约数的过程如下:123=2×48+27,48=1×27+21,27=1×21+6,21=3×6+3,6=2×3+0,最后6能被3整除,得123和48的最大公约数为3.(2)我们将80作为大数,36作为小数,因为80和36都是偶数,要除公因数2.80÷2=40,36÷2=18.40和18都是偶数,要除公因数2.40÷2=20,18÷2=9.下面来求20与9的最大公约数,20-9=11,11-9=2,9-2=7,7-2=5,5-2=3,3-2=1,2-1=1,可得80和36的最大公约数为22×1=4.点评:对比两种方法控制好算法的结束,辗转相除法是到达余数为0,更相减损术是到达减数和差相等.变式训练分别用辗转相除法和更相减损术求1 734,816的最大公约数.解:辗转相除法:1 734=816×2+102,816=102×8(余0),∴1 734与816的最大公约数是102.更相减损术:因为两数皆为偶数,首先除以2得到867,408,再求867与408的最大公约数.867-408=459,459-408=51,408-51=357,357-51=306,306-51=255,255-51=204,204-51=153,153-51=102,102-51=51.∴1 734与816的最大公约数是51×2=102.利用更相减损术可另解:1 734-816=918,918-816=102,816-102=714,714-102=612,612-102=510,510-102=408,408-102=306,306-102=204,204-102=102.∴1 734与816的最大公约数是102.知能训练求319,377,116的最大公约数.解:377=319×1+58,319=58×5+29,58=29×2.∴377与319的最大公约数为29,再求29与116的最大公约数.116=29×4.∴29与116的最大公约数为29.∴377,319,116的最大公约数为29.拓展提升试写出利用更相减损术求两个正整数的最大公约数的程序.解:更相减损术程序:INPUT “m,n=”;m,nWHILE m<>nIF m>n THENm=m-nELSEm=n-mEND IFWENDPRINT mEND课堂小结(1)用辗转相除法求最大公约数.(2)用更相减损术求最大公约数.思想方法:递归思想.作业分别用辗转相除法和更相减损术求261,319的最大公约数.分析:本题主要考查辗转相除法和更相减损术及其应用.使用辗转相除法可依据m=nq+r,反复执行,直到r=0为止;用更相减损术就是根据m-n=r,反复执行,直到n=r为止.解:辗转相除法:319=261×1+58,261=58×4+29,58=29×2.∴319与261的最大公约数是29.更相减损术:319-261=58,261-58=203,203-58=145,145-58=87,87-58=29,58-29=29,∴319与261的最大公约数是29.设计感想数学不仅是一门科学,也是一种文化,本节的引入从东、西方文化的不同开始,逐步向学生渗透数学文化.从知识方面主要学习用两种方法求两个正整数的最大公约数,从思想方法方面,主要学习递归思想.本节设置精彩例题,不仅让学生学到知识,而且让学生进一步体会算法的思想,培养学生的爱国主义情操.。
1.3 算法案例第三课时
乌鲁木齐市高级中学 杨帆
理论迁移
将下列各进制数化为十进制数. 例1 将下列各进制数化为十进制数. (1)10303(4) ; (2)1234(5). =1× 10303(4)=1×44+3×42+3×40=307. =1× 1234(5)=1×53+2×52+3×51+4×50=194.
乌鲁木齐市高级中学 杨帆
ai ´ 2
i- 1
乌鲁木齐市高级中学 杨帆
思考3:利用 思考3:利用 3:
anan- 1 L a2a1(2) = an ? 2
L + a2 ? 2 a1 2 运用循环结构, 运用循环结构,把二进制数 a = anan- 1 L a2a1(2)
n- 1
an- 1 ? 2
n- 2
1
0
化为十进制数b的算法步骤如何设计? 化为十进制数b的算法步骤如何设计?
输入a,k,n 输入 , , b=0 i=1 把a的右数第 位数字赋给 的右数第i位数字赋给 的右数第 位数字赋给t
b=b+t·ki-1
i=i+1 i>n? 否 是 输出b 输出 结束
a, INPUT a,k,n b=0 i=1 t=a MOD10 DO b=b+t*k∧(i-1) a=a/10 t=a MOD10 i=i+1 i>n LOOP UNTIL i n PRINT b END
1.3
算法案例
第三课时
乌鲁木齐市高级中学 杨帆
问题提出
1.辗转相除法和更相减损术, 1.辗转相除法和更相减损术,是求两 辗转相除法和更相减损术 个正整数的最大公约数的算法, 个正整数的最大公约数的算法,秦九韶 算法是求多项式的值的算法, 算法是求多项式的值的算法,将这些算 法转化为程序, 法转化为程序,就可以由计算机来完成 相关运算. 相关运算. 2.人们为了计数和运算方便, 2.人们为了计数和运算方便,约定了 人们为了计数和运算方便 各种进位制,这些进位制是什么概念, 各种进位制,这些进位制是什么概念, 它们与十进制之间是怎样转化的?对此, 它们与十进制之间是怎样转化的?对此, 我们从理论上作些了解和研究. 我们从理论上作些了解和研究.
课件11:1.3 算法案例(二)
[针对训练 3] 将 53(8)转化为二进制数. [解] 先将八进制数 53(8)转化为十进制数: 53(8)=5×81+3×80=43; 再将十进制数 43 转化为二进制数:
所以 53(8)=101011(2).
课堂归纳小结 把一个非十进制数转化为另一种非十进制数,通常 是把这个数先转化为十进制数,然后再利用除 k 取余法, 把十进制数转化为 k 进制数.而在使用除 k 取余法时要 注意以下 几点:(1)必须除到所得的商是 0 为止;(2)各步所得 的余数必须从下到上排列;(3)切记在所求数的右下角标 明基数.
[针对训练 2] (1)把十进制数 15 化为二进制数为( )
A.1011
B.1001(2)
C.1111(2)
D.1111
(2)把四进制数 13022 化为六进制数.
[解析] (1)因为 所以 15=1111(2),故 C 正确.
(2)先把四进制数 13022 化为十进制数. 13022(4)=1×44+3×43+0×42+2×4+2×40=256+192+0+8+2=458. 再把十进制数 458 化为六进制数. 458=2042(6). 故 13022(4)=2042(6).
本课结束
名师提醒 将 k 进制数化为十进制数的方法
先把 k 进制数写成各位上的数字与 k 的幂的乘积之 和的形式,再按照十进制数的运算规则计算出结果.
[针对训练 1] (1)101(2)转化为十进制数是( )
A.2
B.5
C.20
D.101
(2)下列最大数是( )
A.110(2)
B.18
C.16(8)
D.20(5)
[答案] (1)C (2)2042(6)
题型三 不同进位制间的转化 典例 3 把五进制数 1234(5)转化为十进制数,再把它转 化为八进制数. [解] ∵1234(5)=1×53+2×52+3×51+4×50=194,而
1.3算法案例 课件-高一数学人教A版必修3
用秦九韶算法求这个多项式当x=5时的值。
解:根据秦九韶算法,把多项式改写成如下 形式:
f (x) ((((4x 2)x 3.5)x 2.6)x 1.7)x 0.8
按照从内到外的顺序,依次计算一次多项式当 x=5时的值:
WHILE d<>n
IF d>n THEN m=d
ELSE m=n
n=d
END IF d=m-n WEND d=2^k*d
PRINT d
END
问题2:怎样求多项式 f (x) x5 x4 x3 x2 x 1当x=5 的值呢?
方法1:把5代入多项式,计算各项的值,然后把它们加 起来。这时共做了1+2+3+4=10次乘法运算,5 次加法运算。
例1:用更相减损术求98与63的最大公约数。
解:由于63不是偶数,把98和63以大数减小数, 并辗转相减得,如图所示:
98-63=35 63-35=28 35-28=7 28-7=21 21-7=14 14-7=7
所以,98和63的最大公约数等于7。
思考:把更相减损术与辗转相除法比较,你有什么
发现?你能根据更相减损术设计程序,求两个正数的 最大公约数吗?
v1 an x an1
然后由内向外逐层计算一次多项式的值,即
v2 v1 x an2 ,
v3 v2 x an3 ,
vn vn1 x a0 ,
这样,求n次多项式f(x)的值就转化为求n个一次多项 式的值。
上述方法称为秦九韶算法。直到今天, 这种算法仍是 多项式求值比较先进的算法。
例2、已知一个5次多项式为
⑤十进制化k进制
2014年人教A版必修三课件 1.3 算法案例
输入正数m,n
m>n? 是 m=m-n 否 m=n? 是 输出m 结束
否 n=n-m
案例2 秦九韶算法 问题2. 下面是求多项式 f(x)=x5+x4+x3+x2+x+1 的 值的两种算法, 你认为哪种算法要快一些? 为什么? 算法 1: 直接将 x 的值代入多项式计算; 算法 2: 将多项式变形成 f(x)=((((x+1)x+1)x+1)x+1)x+1. 算法 1 要做 10 次乘法和 5 次加法. 算法 2 只做 4 次乘法和 5 次加法. 计算机做一次乘法用的时间比做一次加法所用 的时间长得多. 对于 n 次多项式的求值运算, 我国南宋时期的 秦九韶有如下的算法:
5. 什么是秦九韶算法? 它的特点是什么? 6. 你能写出秦九韶算法的程序吗?
Hale Waihona Puke 案例1 辗转相除法与更相减损术 问题1. 你能求两个数的最大公约数吗? 看下面 一列等式, 请问: 37 是 2146 与 1813 的公约数吗? 2146 1813 余 333, 2146 = 1813 1 +333, 有37的约数, 1813 333 余 148, 1813 = 333 5 +148, 有37的约数, 333 148 余 37, 333 = 148 2 +37, 有37的约数, 148 37 余 0. 有37的约数, 148 = 37 4. 求两个数的最大公约数的算法步骤: (1) 大数除以小数取余数; (2) 较小的数与余数又进行大数除以小数取余数; 如此重复进行, 直到余数为 0. 余数为 0 时的除数就是最大公约数. 这叫辗转相除法, 又叫欧几里得算法.
否则, 返回第二步进入循环.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
[学习目标] 1.理解辗转相除法与更相减损术的含义,了解其执行过程.2.理解秦九韶算法的计算过程,并了解它提高计算效率的实质.3.理解进位制的概念,能进行不同进位制间的转化.4.了解进位制的程序框图和程序.知识点一辗转相除法与更相减损术1.辗转相除法(1)辗转相除法,又叫欧几里得算法,是一种求两个正整数的最大公约数的古老而有效的算法.(2)辗转相除法的算法步骤第一步,给定两个正整数m,n.第二步,计算m除以n所得的余数r.第三步,m=n,n=r.第四步,若r=0,则m,n的最大公约数等于m;否则,返回第二步.2.更相减损术第一步,任意给定两个正整数,判断它们是否都是偶数.若是,用2约简;若不是,执行第二步.第二步,以较大的数减去较小的数,接着把所得的差与较小的数比较,并以大数减小数.继续这个操作,直到所得的数相等为止,则这个数(等数)或这个数与约简的数的乘积就是所求的最大公约数.3.辗转相除法和更相减损术的区别与联系:答 先判断a ,b 是否为偶数,若是,都除以2再进行. 知识点二 秦九韶算法 1.秦九韶算法简介(1)秦九韶算法要解决的问题是求多项式的值. (2)秦九韶算法的特点:通过一次式的反复计算,逐步得到高次多项式的值,即将一个n 次多项式的求值问题归结为重复计算n 个一次多项式的值的问题. (3)秦九韶算法的原理:将f (x )=a n x n +a n -1x n -1+…+a 1x +a 0改写为:f (x )=(a n x n -1+a n -1x n -2+…+a 1)x +a 0=((a n x n-2+a n -1x n -3+…+a 2)x +a 1)x +a 0=…先计算最内层括号内一次多项式的值,即v 1=a n x +a n -1,再由内向外逐层计算一次多项式v k 的值.2.秦九韶算法的操作方法 (1)算法步骤如下:第一步,输入多项式次数n 、最高次项的系数a n 和x 的值. 第二步,将v 的值初始化为a n ,将i 的值初始化为n -1. 第三步,输入i 次项的系数a i . 第四步,v =v x +a i ,i =i -1.第五步,判断i 是否大于或等于0.若是,则返回第三步;否则,输出多项式的值v . (2)程序框图如图所示.(3)程序如下:知识点三进位制1.进位制的概念进位制是为了计数和运算方便而约定的记数系统,约定“满几进一”就是几进制,几进制的基数(大于1的整数)就是几.2.常见的进位制(1)二进制:①只使用0和1两个数学;②满二进一,即1+1=10(2).(2)八进制:①使用0,1,2,3,4,5,6,7这八个不同数学;②满八进一,即7+1=10(8).(3)十六进制:①使用0~9十个数字和A~F表示10~15;②F+1=10(16)思考任何进位制中都要用到的数字是什么?答0和1.题型一求两个正整数的最大公约数例1分别用辗转相除法和更相减损术求261和319的最大公约数.解方法一(辗转相除法)319÷261=1(余58),261÷58=4(余29),58÷29=2(余0),所以319与261的最大公约数为29.方法二(更相减损术)319-261=58,261-58=203,203-58=145,145-58=87,87-58=29,58-29=29,29-29=0,所以319与261的最大公约数是29.反思与感悟(1)利用辗转相除法求给定的两个数的最大公约数,即利用带余除法,用数对中较大的数除以较小的数,若余数不为零,则将余数和较小的数构成新的数对,再利用带余除法,直到大数被小数除尽,则这时的较小数就是原来两个数的最大公约数.(2)利用更相减损术求两个正整数的最大公约数的一般步骤是:首先判断两个正整数是否都是偶数.若是,用2约简.也可以不除以2,直接求最大公约数,这样不影响最后结果.跟踪训练1用辗转相除法求80与36的最大公约数,并用更相减损术检验你的结果.解80=36×2+8,36=8×4+4,8=4×2+0,即80与36的最大公约数是4.验证:80÷2=40,36÷2=18;40÷2=20,18÷2=9;20—9=11,11-9=2;9-2=7,7-2=5;5-2=3,3-2=1;2-1=1,1×2×2=4;所以80与36的最大公约数为4.题型二秦九韶算法的应用例2用秦九韶算法求多项式f(x)=x5+5x4+10x3+10x2+5x+1当x=-2时的值.解f(x)=x5+5x4+10x3+10x2+5x+1=((((x+5)x+10)x+10)x+5)x+1.当x=-2时,有v0=1;v1=v0x+a4=1×(-2)+5=3;v2=v1x+a3=3×(-2)+10=4;v3=v2x+a2=4×(-2)+10=2;v4=v3x+a1=2×(-2)+5=1;v5=v4x+a0=1×(-2)+1=-1.故f(-2)=-1.反思与感悟(1)先将多项式写成一次多项式的形式,然后运算时从里到外,一步一步地做乘法和加法即可.这样比直接将x=-2代入原式大大减少了计算量.若用计算机计算,则可提高运算效率.(2)注意:当多项式中n次项不存在时,可将第n次项看作0·x n.跟踪训练2用秦九韶算法计算多项式f(x)=x6-12x5+60x4-160x3+240x2-192x+64当x=2时的值.解根据秦九韶算法,把多项式改写成如下形式:f(x)=(((((x-12)x+60)x-160)x+240)x-192)x+64.由内向外依次计算一次多项式当x=2时的值;v0=1;v1=1×2-12=-10;v2=-10×2+60=40;v3=40×2-160=-80;v4=-80×2+240=80;v5=80×2-192=-32;v6=-32×2+64=0.所以当x=2时,多项式的值为0.题型三进位制之间的互化例3(1)把二进制数1110011(2)化为十进制数.(2)将8进制数314706(8)化为十进制数.解(1)1110011(2)=1×26+1×25+1×24+0×23+0×22+1×21+1=115.(2)314706(8)=3×85+1×84+4×83+7×82+0×81+6×80=104902.所以,化为十进制数是104902.反思与感悟(1)将k进制转化为十进制的方法是:先将这个k进制数写成各个数位上的数字与k的幂的乘积之和的形式,再按照十进制的运算规则计算出结果.(2)十进制转化为k进制,采用除k取余法,也就是除基数,倒取余.跟踪训练3将53(8)转化为二进制数.解先将八进制数53(8)转化为十进制数:53(8)=5×81+3×80=43;再将十进制数43转化为二进制数:所以53(8)=101011(2).转化与化归思想例4下列各数中,最小的数是()A.85(9)B.210(6)C.1000(4)D.111111(2)分析先将它们转化为十进制数,再进行比较.解析85(9)=8×9+5=77,210(6)=2×62+1×6+0=78,1000(4)=1×43=64,111111(2)=1×25+1×24+1×23+1×22+1×2+1=63.故最小的是63.答案 D解后反思合理的转化是解题的关键.对于进位制之间的转化问题,一般要先把k进制数转化为十进制数,再转化为其他进制数.数制转化方法掌握不牢致错例5 把十字进制数49化为二进制数.分析 对进位制间的换算,要弄清解题的办法,将十进制数转化为k 进制数用“除k 取余法”. 解所以49=110001(2).解后反思 本例常出现的错误是把上式中各步所得的余数从上到下排列,这是基本方法掌握不牢造成的,应加以注意.1.1337与382的最大公约数是( ) A .3B .382C .191D .201 答案 C解析 利用辗转相除法,1337=382×3+191,382=191×2,故两数的最大公约数为191. 2.把189化为三进制数,则末位数字是( ) A .0B .1C .2D .3 答案 A解析 采用“除k 取余法”,得即189=21000(3)3.用秦九韶算法求n 次多项式f (x )=a n x n +a n -1x n -1+…+a 1x +a 0当x =x 0时的值,求f (x 0)需要乘方、乘法、加法的次数分别为( ) A.n (n +1)2,n ,nB .n,2n ,nC .0,2n ,nD .0,n ,n答案 D解析 因为f (x )=(…((a n x +a n -1)x +a n -2)x +…+a 1)x +a 0,所以乘方、乘法、加法的次数分别为0,n ,n .4.秦九韶是我国南宋时期的数学家,普州(现四川省安岳县)人,他在所著的《数书九章》中提出的多项式求值的秦九韶算法,至今仍是比较先进的算法.如图所示的程序框图给出了利用秦九韶算法求某多项式值的一个实例,若输入n,x的值分别为3,2,则输出v的值为()A.9B.18C.20D.35答案 B解析初始值n=3,x=2,程序运行过程如下v=1i=2v=1×2+2=4i=1v=4×2+1=9i=0v=9×2+0=18i=-1跳出循环,输出v=18,选B.5.用更相减损术求36与134的最大公约数,第一步应为________.答案先除以2,得到18与67解析∵36与134都是偶数,∴第一步应为:先除以2,得到18与67.1.求两个正整数的最大公约数的问题,可以用辗转相除法,也可以用更相减损术.用辗转相除法,即根据a=nb+r这个式子,反复相除,直到r=0为止;用更相减损术,即根据r=|a -b|这个式子,反复相减,直到r=0为止.2.秦九韶算法的关键在于把n次多项式转化为一次多项式,注意体会递推的实现过程,实施运算时要由内向外,一步一步执行.3.把一个非十进制数转化为另一种非十进制数,通常是把这个数先转化为十进制数,然后再利用除k取余法,把十进制数转化为k进制数.而在使用除k取余法时要注意以下几点:(1)必须除到所得的商是0为止;(2)各步所得的余数必须从下到上排列;(3)切记在所求数的右下角标明基数.。