1.3 算法案例
高中数学 1.3 算法案例--进位制新课件 新人教版必修3
![高中数学 1.3 算法案例--进位制新课件 新人教版必修3](https://img.taocdn.com/s3/m/7357fa87be1e650e53ea9918.png)
十进制:
我们最常用最熟悉的就是十进制数,它的数值部分是十个不 同的数字符号0,1,2,3,4,5,6,7,8,9来表示的。
例如133.59,它可用一个多项式来表示:
133.59=1*102+3*101+3*100 +5*10-1+9*10-2
式中1处在百位,第一个3所在十位,第二个3所在 个位,5和9分别处在十分位和百分位。十进制数是逢 十进一的。
为了区分不同的进位制,常在数的右下角标明基数, 十进制一般不标注基数.
例如十进制的133.59,写成133.59(10) 七进制的13,写成13(7);二进制的10,写成10(2)
一般地,若k是一个大于1的整数,那么以k 为基数的k进制可以表示为一串数字连写在一起 的形式:
a n a n 1a 1 a 0 (k )( 0 a n k ,0 a n 1 ,,a 1 ,a 0 k ) .
结束
练习:
完成下列进位制之间的转化:
(1)10231(4)= (2)235(7)= (3)137(10)= (4)1231(5)= (5)213(4)= (6)1010111(2)=
(10); (10); (6); (7); (3);
(4)。
小结
• 1.进位制是一种记数方式,用有限的数 字在不同的位置表示不同的数值。可使 用数字符号的个数称为基数,基数为k, 即可称k进位制,简称k进制。k进制需要 使用k个数字;
课堂小结
1.十进制数与k进制数之间的转 化方法
2.体会用算法解决上述问题的 过程,体验算法在解决问题中 的重要作用
89=1×26+0×25+1×24+1×23+0×22+0×21+1×20
1.3算法案例(进位制)(yong)
![1.3算法案例(进位制)(yong)](https://img.taocdn.com/s3/m/0d8f5bed551810a6f524868d.png)
思考:生活最常见的进位制是什么?除此之外还有
哪些常见的进位制?请举例说明. • 最常见的进位制应该是我们数学中的十进制,比 如一般的数值计算,但是并不是生活中的每一种 数字都是十进制的. • 古人有半斤八两之说,就是十六进制与十进制的 转换. • 比如时间和角度的单位用六十进制, 计算“一打” 数值时是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 算法案例 课件4
![1.3 算法案例 课件4](https://img.taocdn.com/s3/m/3171d866f242336c1eb95e6b.png)
人教A版高中数学必修三第一章
学习目标
1.了解各种进位制与十进制之间 转换的规律,会利用各种进位制与 十进制之间的联系进行各种进位制 之间的转换。 2.学习各种进位制转换成十进制的 计算方法,研究十进制转换为各种 进位制的除k去余法,并理解其中的 数学规律。
创设情景,揭示课题
我们常见的数字都是十进制的,但是并不是 生活中的每一种数字都是十进制的.比如时间 和角度的单位用六十进位制,电子计算机用的 是二进制.那么什么是进位制?不同的进位制之 间又又什么联系呢? 进位制是一种记数方式,用有限 的数字在不同的位置表示不同的数 值。可使用数字符号的个数称为基 数,基数为n,即可称n进位制,简 称n进制。现在最常用的是十进制, 通常使用10个阿拉伯数字0-9进行记 数。
例如十进制的133.59,写成133.59(10)
七进制的13,写成13(7);二进制的10,写成10(2)
一般地,若k是一个大于1的整数,那么以k 为基数的k进制可以表示为一串数字连写在一起
的形式:
anan1 a1a0(k ) (0 an k,0 an1,, a1, a0 k ).
例如133.59,它可用一个多项式来表示:
133.59=1*102+3*101+3*100 +5*10-1+9*10-2 式中 1 处在百位,第一个 3 所在十位,第二个 3 所在个位, 5 和9分别处在十分位和百分位。十进制数是逢十进一的。
为了区分不同的进位制,常在数的右下角标明基数,十进 制一般不标注基数.
余数
1 0 0 1 1 0 1
可以推广为把十进制数化为k进制数的算法,称为除k 取余法。
3、十进制转换为其它进制
§1.3算法案例
![§1.3算法案例](https://img.taocdn.com/s3/m/057c07cd8bd63186bcebbcc4.png)
为了区别进制,我们就用下 标(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 把一个多项式
人教版高中数学(必修3)1.3《算法案例》
![人教版高中数学(必修3)1.3《算法案例》](https://img.taocdn.com/s3/m/37e1743a5727a5e9856a61b7.png)
2333
问题情境
物不知数” 孙子问题(“物不知数”)
今有物不知数,三三数之剩二, 今有物不知数,三三数之剩二, 五五数之剩三,七七数之剩二, 五五数之剩三,七七数之剩二, 问物几何? 问物几何? 答曰:二十三. 答曰:二十三
——《孙子算经》 ——《孙子算经》
学生活动
韩信点兵、 韩信点兵、孙子问题相当于
你能根据辗转相除法的算法步骤画出它的 程序框图以及相应的程序语句吗? 程序框图以及相应的程序语句吗? 辗转相除法求两个数的最大公约数, 辗转相除法求两个数的最大公约数, 程序: 程序: INPUT m,n
输入: 输入:m,n 开始
r=1 其算法可以描述如下: 其算法可以描述如下:
r=m MOD n 输入两个正整数m和 ; ① 输入两个正整数 和n; WHILE r<>0
问题情境
韩信点兵 孙子问题
问题情境
韩信点兵
士兵排成3列纵队进行操练,结果有 人多余 人多余; 士兵排成 列纵队进行操练,结果有2人多余; 列纵队进行操练 若排成5列纵队进行操练,结果有 人多余 人多余; 若排成 列纵队进行操练,结果有3人多余; 列纵队进行操练 若排成7列纵队进行操练,结果有 人多余 人多余. 若排成 列纵队进行操练,结果有2人多余 列纵队进行操练
算法设计思想: 算法设计思想:
首先,让 开始检验条件, 首先 让m=2开始检验条件 若三个条件中有一个不满足 开始检验条件 若三个条件中有一个不满足, 递增1,一直到同时满足三个条件为止 则m递增 一直到同时满足三个条件为止 递增 一直到同时满足三个条件为止. 除余2, 除余 除余3, 除余 除余1,不符; 如m=8,被3除余 ,5除余 ,7除余 ,不符; , 除余 除余0,不符; 如m=9,被3除余 ,不符; , 除余 =10, 3除余 不符; 除余1, 如m=10,被3除余1,不符; 可验证得: 可验证得:m=23 韩信何以很快知道队伍的人数? 韩信何以很快知道队伍的人数?
1.3算法案例(一)辗转相除法
![1.3算法案例(一)辗转相除法](https://img.taocdn.com/s3/m/cbf8a912eff9aef8941e06e6.png)
练习:
• 教材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---辗转相除法与更相减损术 8](https://img.taocdn.com/s3/m/c75923e058f5f61fb73666de.png)
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)
![人教版高中数学必修三课件:1.3 算法案例(共55张PPT)](https://img.taocdn.com/s3/m/d28759b7aef8941ea76e05ca.png)
解:用辗转相除法求最大公约数: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算法案例
![1.3算法案例](https://img.taocdn.com/s3/m/72456120af45b307e871972b.png)
(c)情感态度与价值观 1.通过阅读中国古代数学中的算法案例,体会中 国古代数学对世界数学发展的贡献。 2.在学习古代数学家解决数学问题的方法的过程 中培养严谨的逻辑思维能力,在利用算法解决数学问题 的过程中培养理性的精神和动手实践的能力。 二、教学重难点 重点:理解辗转相除法与更相减损术求最大公约数 的方法。 难点:把辗转相除法与更相减损术的方法转换成程 序框图与程序语言。 三、学法 在理解最大公约数的基础上去发现辗转相除法与更 相减损术中的数学规律,并能模仿已经学过的程序框图 与算法语句设计出辗转相除法程序框图与算法程序。
二、教学重难点 重点:各进位制表示数的方法及各进位制 之间的转换 难点:除k去余法的理解以及各进位制之 间转换的程序框图的设计 三、学法 在学习各种进位制特点的同时探讨进位制 表示数与十进制表示数的区别与联系,熟悉各 种进位制表示数的方法,从而理解十进制转换 为各种进位制的除k去余法。
[问题1]我们常见的数字都是十进制的, 但是并不是生活中的每一种数字都是十进制的. 比如时间和角度的单位用六十进位制,电子计 算机用的是二进制.那么什么是进位制?不同的 进位制之间又有什么联系呢? 进位制是人们为了计数和运算的方便而 约定的一种记数系统,约定满二进一,就是二 进制;满十进一,就是十进制;满十六进一,就 是十六进制;等等. “满几进一”,就是几进制,几进制的基数就是几. 可使用数字符号的个数称为基数.基数 都是大于1的整数.
案例1 辗转相除法与更相减损术
一、三维目标 (a)知识与技能 1.理解辗转相除法与更相减损术中蕴含的数学原 理,并能根据这些原理进行算法分析。 2.基本能根据算法语句与程序框图的知识设计完 整的程序框图并写出算法程序。 (b)过程与方法 在辗转相除法与更相减损术求最大公约数的学习 过程中对比我们常见的约分求公因式的方法,比较它 们在算法上的区别,并从程序的学习中体会数学的严 谨,领会数学算法计算机处理的结合方式,初步掌握 把数学算法转化成计算机语言的一般步骤。
1.3算法案例2
![1.3算法案例2](https://img.taocdn.com/s3/m/e1fc1773af1ffc4ffe47acd9.png)
第三步,计算v3=v2x+an-3. vk=vk-1x+an-k N次乘法,若各项均不为 … 零,则需n次加法,缺一 ,2,„,n) 项就减少一次加法运算。 第n步,计算vn=vn-1x+a0. (k=1 上述方法称为秦九韶算法.
秦九韶算法
例1.已知一个5次多项式为
f x 4x 2x 3.5x 2.6x 1.7 x 0.8
秦九韶算法
练习:阅读下列程序,说明它解决的实际问题是什么?
INPUT “x=”;a n=0 y=0 WHLE n<5 y=y+(n+1)*a∧n n=n+1 WEND PRINT y END
4 3 2 f x 5 x 4 x 3 x 2 x 1 在x=a时的值. 求8 习题1.3 A组:2.
v=an i=n-1 i=i-1 v=vx+ai 输入ai i≥0? 否 是 输出v 结束
秦九韶算法
课堂小结 1.秦九韶算法计算多项式的值及程序设计. 2.计算机的一个很重要的特点就是运算速度快, 但评价算法好坏的一个重要标志是运算的次数,如 果一个算法从理论上需要超出计算机允许范围内的 运算次数,那么这样的算法就只能是一个理论算法. 在多项式求值的各种算法中,秦九韶算法是一个优 秀算法.
秦九韶算法
思考4:对于f(x)=(„((anx+an-1)x+ an-2)x+„+a1)x+a0, 由内向外逐层计算一次多项式的值,其算法步骤如何?
第一步,计算v1=anx+an-1.
第二步,计算v2=v1x+an-2.
思考 6: 5:在秦九韶算法 中 , 对v n0次 多 项式, 中,记 =an ,那么第 共进行 ____ 次乘法运 k步的算式是什么? 算, ____ 次加法运算。
第一章 1.3 算法案例:辗转相除法、秦九韶算法
![第一章 1.3 算法案例:辗转相除法、秦九韶算法](https://img.taocdn.com/s3/m/96ad3d11c281e53a5902ff0c.png)
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)当多项式函数中间出现空项式,要以系数为零的
高中数学必修三1.3算法案例-辗转相除法
![高中数学必修三1.3算法案例-辗转相除法](https://img.taocdn.com/s3/m/80bf4efa4028915f804dc2bb.png)
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的最大公约数.
1.3算法案例(适用)ppt
![1.3算法案例(适用)ppt](https://img.taocdn.com/s3/m/23eda821f61fb7360b4c65fa.png)
2021/3/2
秦九韶算法的基本思想 思考1:对于多项式f(x)=x5+x4+x3+x2+x+1,求
f(5)的值. 分析:把5代入多项式,若先计算各项的值,
2021/3/2
思考4:辗转相除直到何时结束? 主要运用的是哪种算法结构?
辗转相除法是一个反复执行直到余数等于0停止的步骤, 这实际上是一个循环结构
辗转相除法求两个数的最大公约数,其算法可以描述如下: ① 输入两个正整数m和n; ② 求余数r:计算m除以n,将所得余数存放到变量r中; ③更新被除数和余数:m=n,n=r。
第二步:以较大的数减去较小的数,接着把差 与较小的数比较,并以大数减小数.继续这个操作, 直到所得的数相等为止,则这个等数或这个数与约 简的数的乘积就是所求的最大公约数.
2021/3/2
例1:用更相减损术求98与63的最大公约数.
因为63不是偶数,所以98-源自3=35,63-35=28,
35-28=7,
2021/3/2
思考3:注意到8251=6105×1+2146,那么8251 与6105这两个数的公约数和6105与2146的公约数有 什么关系?
我们发现6105=2146×2+1813,同理,6105与 2146的公约数和2146与1813的公约数相等.
思考4:重复上述操作,你能得到8251与6105这 两个数的最大公约数吗? 8251=6105×1+2146, 1813=333×5+148,
得:18和24最大公约数是:2×3=6
短除法
想一想,如何求8251与6105的最大公约数?
2021/3/2
思考2:对于8251与6105这两个数,它们的最大 公约数是多少?你是怎样得到的?
1.3算法案例 课件-高一数学人教A版必修3
![1.3算法案例 课件-高一数学人教A版必修3](https://img.taocdn.com/s3/m/c64db935b14e852459fb5785.png)
用秦九韶算法求这个多项式当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 算法案例
![2014年人教A版必修三课件 1.3 算法案例](https://img.taocdn.com/s3/m/0b83ecec524de518964b7d6d.png)
输入正数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)。
=((11×2+0)×2+0)×2+1 ---除2取余法.
=(((5×2+1)×2+0)×2+0)×2+1
=((((2×2+1)×2+1)×2+0)× 2+0)×2+1
=(((((1×2)+0)×2+1)×2+1)×2+0)× 2+0)×2+1
=1×26+0×25+1×24 +1×23+0×22+0×21+1×20=1001(2).
以上我们求最大公约数的方法就是辗转相 除法。也叫欧几里德算法,它是由欧几里德在 公元前300年左右首先提出的。
辗转相除法求最大公约数算法: • 第一步,给定两个正数m,n • 第二步,计算m除以n所得到余数r • 第三步,m=n,n=r • 第四步,若r=0,则m,n的最大公约数等于m;
否则返回第二步
ELSE
m=n n=d
END IF
d=m-n
WEND
d=2 k*d
PRINT d END
辗转相除法与更相减损术的比较:
(1)都是求最大公约数的方法,计算上 辗转相除法以除法为主,更相减损术以减法为 主;计算次数上辗转相除法计算次数相对较少, 特别当两个数字大小区别较大时计算次数的区 别较明显。
(2)从结果体现形式来看,辗转相除法 体现结果是以相除余数为0则得到,而更相减损 术则以减数与差相等而得到.
2 5 25 121 608 3034 15170
所以,当x=5时,多项式的值是15170.
注意:n次多项式有n+1项,因此缺少哪一项 应将其系数补0.
一般地,对于一个n次多项式 f(x)=anxn+an-1xn-1+an-2xn-2+……+a1x+a0. 我们可以改写成如下形式:
f(x)=(…(anx+an-1)x+an-2)x+…+a1)x+a0. 求多项式的值时,首先计算最内层括号内一 次多项式的值,即 v1=anx+an-1,
显然8251与6105的最大公约数也必是2146 的约数,同样6105与2146的公约数也必是8251 的约数,所以8251与6105的最大公约数也是 6105与2146的最大公约数。
1.辗转相除法:
例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+0. 则37为8251与6105的最大公约数。
例4:把89化为二进制的数. 我们可以用下面的除法算式表示除2取余法:
2 89
2 44 2 22 2 11 25
v1=anx+an-1,
v2=v1x+an-2,
v3=v2x+an-3, ……, vn=vn-1x+a0.
观察上述秦九韶算法中的n个一次式,可见 vk的计算要用到vk-1的值. 若令v0=an,得
v0=an,
vK=vK-1x+an-k(k=1,2,……,n)
这是一个在秦九韶算法中反复执行的步 骤,因此可用循环结构来实现.
然后由内向外逐层计算一次多项式的值,即
v2=v1x+an-2, v3=v2x+an-3, ……, vn=vn-1x+a0.
这样,求n次多项式f(x)的值就转化为求n个 一次多项式的值.这种算法称为秦九韶算法.
点评:秦九韶算法是求一元多项式的值的 一种方法.
它的特点是:把求一个n次多项式的值转化 为求n个一次多项式的值,通过这种转化,把运算 的次数由至多n(n+1)/2次乘法运算和n次加法 运算,减少为n次乘法运算和n次加法运算,大大 提高了运算效率.
1.3 算法案例
案例1 辗转相除法与更相减损术
[问题1]:在小学,我们已经学过求最大公约数 的知识,你能求出18与30的最大公约数吗?
2 18 30 3 9 15 35
∴18和30的最大公约数是2×3=6.
先用两个数公有的质因数连续去除,一直除到所 得的商是互质数为止,然后把所有的除数连乘起 来.
=(((2x2-5x-4)x+3)x-6)x+7 v3=v2x+3=21×5+3=108
=((((2x-5)x-4)x+3)x-6)x+7 v4=v3x-6=108×5-6=534
变为求几个一次式的值
v5=v4x+7=534×5+7=2677 几个乘法
所以,当x=5时,多项式的值是2677. 几个加法?
意思是:(1)第一个数字an不能等于0; (2)每一个数字an,an-1,…,a1,a0都须小于k.
k进制的数也可以表示成不同位上数字与 基数k的幂的乘积之和的形式,即 anan-1…a1a0(k)=an×kn+an-1×kn-1 注意这是一
+…+a1×k1+a0×k0 . 个n+1位数.
[问题3]二进制只用0和1两个数字,这正好 与电路的通和断两种状态相对应,因此计算机 内部都使用二进制.计算机在进行数的运算时, 先把接受到的数转化成二进制数进行运算,再 把运算结果转化为十进制数输出.
i>=0?
否
输出v
结束
i=i-1
v=vx+ai 输入ai
是
案例3 进位制
[问题1]我们常见的数字都是十进制的, 但是并不是生活中的每一种数字都是十进制的. 比如时间和角度的单位用六十进位制,电子计 算机用的是二进制.那么什么是进位制?不同的 进位制之间又有什么联系呢?
进位制是人们为了计数和运算的方便而 约定的一种记数系统,约定满二进一,就是二 进制;满十进一,就是十进制;满十六进一,就 是十六进制;等等.
[问题2]有没有更高效的算法?
分析:计算x的幂时,可以利用前面的计算结 果,以减少计算量,
即先计算x2,然后依次计算
x2 x, (x2 x) x, ((x2 x) x) x
的值. 这析计算上述多项式的值,一共需要9次乘 法运算,5次加法运算.
第二种做法与第一种做法相比,乘法的运 算次数减少了,因而能提高运算效率.而且对于 计算机来说,做一次乘法所需的运算时间比做一 次加法要长得多,因此第二种做法能更快地得到 结果.
注意:为了区分不同的进位制,常在数字 的右下脚标明基数,. 如111001(2)表示二进制数,34(5)表示5进制数. 十进制数一般不标注基数.
[问题2]十进制数3721中的3表示3个千,7表示7 个百,2表示2个十,1表示1个一,从而它可以写成 下面的形式:
3721=3×103+7×102+2×101+1×100. 想一想二进制数1011(2)可以类似的写成什 么形式? 1011(2)=1×23+0×22+1×21+1×20.
[问题3]能否探索更好的算法,来解决任意多
项式的求值问题? 秦九韶《数书九章》.
f(x)=2x5-5x4-4x3+3x2-6x+7 v0=2
=(2x4-5x3-4x2+3x-6)x+7 v1=v0x-5=2×5-5=5
=((2x3-5x2-4x+3)x-6)x+7 v2=v1x-4=5×5-4=21
同理: 3421(5)=3×53+4×52+2×51+1×50.
C7A16(16)=12×164+7×163+10×162
+1×161+6×160.
一般地,若k是一个大于1的整数,那么以k为 基数的k进制数可以表示为一串数字连写在一起 的形式 anan-1…a1a0(k) (0<an<k,0≤an-1,…,a1,a0<k)
例2 用更相减损术求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。
练习2:用更相减损术求两个正数84与72的最大
思考 :需不需要比较m,n的大小
不需要
程序框图
开始
输入两个正数m,n
r=m MOD n
m=n
n=r
否
r=0?
是
输出m
结束
练习1:利用辗转相除法求两数4081与20723
的最大公约数. (53)
20723=4081×5+318; 4081=318×12+265; 318=265×1+53; 265=53×5+0.
89=an×2n+an-1×2n-1+…+a1×21+a0×20 .
89=44×2+1, 44=22×2+0, 22=11×2+0,
11=5×2+1, 5=2×2+1, 2=1×2+0, 1=0×2+1,
89=44×2+1,
可以用2连续去除89
=(22×2+0)×2+1
或所得商(一直到商为 0为止),然后取余数
算法分析:
• 第一步,输入多项式次数n、最高次项的系数an和 x的值
• 第二步,将v的值初始化为an,将i的值初始化为 n-1
• 第三步,输入i次项的系数ai • 第四步,v=vx+ai,i=i-1 • 第五步,若i>=0,则返回第三步,否则输出v