1.3 算法案例

合集下载

1.3算法案例(进位制)(yong)

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算法案例

§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

【成才之路】高中数学 算法案例第1课时辗转相除法与更相减损术学案课件 新人教A必修3
2022/1/152022/1/15
人 教 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 算法案例1---辗转相除法与更相减损术 8

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)

人教版高中数学必修三课件: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算法案例

1.3算法案例

(c)情感态度与价值观 1.通过阅读中国古代数学中的算法案例,体会中 国古代数学对世界数学发展的贡献。 2.在学习古代数学家解决数学问题的方法的过程 中培养严谨的逻辑思维能力,在利用算法解决数学问题 的过程中培养理性的精神和动手实践的能力。 二、教学重难点 重点:理解辗转相除法与更相减损术求最大公约数 的方法。 难点:把辗转相除法与更相减损术的方法转换成程 序框图与程序语言。 三、学法 在理解最大公约数的基础上去发现辗转相除法与更 相减损术中的数学规律,并能模仿已经学过的程序框图 与算法语句设计出辗转相除法程序框图与算法程序。
二、教学重难点 重点:各进位制表示数的方法及各进位制 之间的转换 难点:除k去余法的理解以及各进位制之 间转换的程序框图的设计 三、学法 在学习各种进位制特点的同时探讨进位制 表示数与十进制表示数的区别与联系,熟悉各 种进位制表示数的方法,从而理解十进制转换 为各种进位制的除k去余法。
[问题1]我们常见的数字都是十进制的, 但是并不是生活中的每一种数字都是十进制的. 比如时间和角度的单位用六十进位制,电子计 算机用的是二进制.那么什么是进位制?不同的 进位制之间又有什么联系呢? 进位制是人们为了计数和运算的方便而 约定的一种记数系统,约定满二进一,就是二 进制;满十进一,就是十进制;满十六进一,就 是十六进制;等等. “满几进一”,就是几进制,几进制的基数就是几. 可使用数字符号的个数称为基数.基数 都是大于1的整数.
案例1 辗转相除法与更相减损术
一、三维目标 (a)知识与技能 1.理解辗转相除法与更相减损术中蕴含的数学原 理,并能根据这些原理进行算法分析。 2.基本能根据算法语句与程序框图的知识设计完 整的程序框图并写出算法程序。 (b)过程与方法 在辗转相除法与更相减损术求最大公约数的学习 过程中对比我们常见的约分求公因式的方法,比较它 们在算法上的区别,并从程序的学习中体会数学的严 谨,领会数学算法计算机处理的结合方式,初步掌握 把数学算法转化成计算机语言的一般步骤。

第一章 1.3 算法案例:辗转相除法、秦九韶算法

第一章  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 算法案例

高中数学人教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算法案例(辗转相除法、更相减损术与秦九韶算法)课件(人教A版必修3)

1.3算法案例(辗转相除法、更相减损术与秦九韶算法)课件(人教A版必修3)

• 解析: f(x)=(((((x-5)x+6)x-3)x+1.8)x+ 0.35)x + 2 , v0 = 1 , v1 = v0x - 5 =- 6 , v2 = v1x+6=-6×(-1)+6=12,v3=v2x-3= -15. • 答案:-15
• 类型三 算法思想的应用 • [ 例 4] 运用秦九韶算法求 7 次多项式 f(x) = a7x7 + a6x6 + a5x5 + a4x4 + a3x3 + a2x2 + a1x + a0 当 x = x0 时 的 值 , x0 , a1 ~ a7 都由键盘输入,画出算法的程 序框图. • [解] 程序框图如图1所示: • [点评] 用秦九韶算法对一个n次多项 式变形,可以得到下面的表达式:
计算 方法
v3=v2x+an-3,
… vn=
vn-1x+a0 ,
这样,求n次多项式f(x)的值就转化为求
n个一次多项式 的值
自我检测
• 1 .用辗转相除法求 294 和 84 的最大公 约数时,需要做除法的次数是( ) • A .1 B.2 • C.3 D.4
• 解析:294=84×3+42,84=42×2+0. • 答案:B
更相减损术
①都是求最大公约数的方法. 联 ②二者的实质都是递归的过程 系 . ③二者都要用循环结构来实现.
• 注意:应用更相减损术时,相减之前 先判断两个数是否为偶数,若都是偶 数则要反复除 2 ,直至至少出现一个 奇数为止.最后的公约数也是相减之 后的数乘以约简数. • 2.秦九韶算法的特点 • 秦九韶算法的特点在于把求一个 n 次 多项式的值转化为求 n 个一次多项式 的 值 , 即 把 求 f(x) = anxn + an - 1xn - 1 +…+a1x+a0的值转化为求递推公式:

1、3、1算法案例(辗转相除法)

1、3、1算法案例(辗转相除法)

你从中看到了 怎样的规律? 怎么用程序框 图来描述呢?
所以, 所以,当x = 5时,多项式的值等于 时 多项式的值等于17255.2
开始
程序框图:
输入f(x)的系数: a0,a1,a2,a3,a4a5 输入x0
v0 = an vk = vk−1 x + an−k (k =1,2,L, n)
课堂小结: 课堂小结:
1、秦九韶算法的方法和步骤 、 2、秦九韶算法的程序框图 、
算法步骤: 第一步:给定两个正整数m,n; 第二步:计算m除以n所得的余数r; 第三步:m=n,n=r; 第四步:若r=0,则m,n的最大公约数等于m; 否则,返回第二步。
开始
程序框图: 程序:
输入m,n 求m除以n的余数r m=n n=r 否 r=0 ? 是 输入m
INPUT m,n DO r= m MOD n m=n n=r LOOP UNTIL r=0 PRINT m END
按由里到外的顺序,依此计算一次多项式当 时的值: 按由里到外的顺序,依此计算一次多项式当x = 5时的值: 时的值
v0 = 5 v1 = 5×5+ 2 = 27 v2 = 27×5+3.5 =138.5 v3 =138.5×5− 2.6 = 689.9 v4 = 689.9×5+1.7 = 3451.2 v5 = 3451.2×5−0.8 =17255.2
结束
欧几里得辗转相除法找出a,b的最大公约数的步骤是: (1)计算a÷b的余数r,若r=0,则b为a,b的最大公约数; (2)若r≠0,则把前面的除数b作为新的被除数,把r作 为新的除数,继续运算,直到余数为0,此时的除数即为 a,b的最大公约数.
算 法 案 例
第二课时

算法案例(完整版)

算法案例(完整版)

例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.3进位制-算法案例课件

高中数学人教A版必修三第一章1.3.3进位制-算法案例课件

把89化为五进制的数.
5 89 5 17 53
0
余数
4 2 3
∴ 89=324(5)
练习:把3282化为16进制的数.
10
11
12
13
14
15
A
B
C
D
E
F
思考 你会把三进制数10221(3)化为二进制数吗?
解:第一步:先把三进制数化为十进制数: 10221(3)=1×34+0×33+2×32+2×31+1×30
51
把89化为二进制的数.
2 89
2 44 2 22 2 11 25
22 21
0
余数
1 0 0 1 1 0 1
把算式中各步所得的余 数从下到上排列,得到
89=1011001(2) 可以用2连续去除89或所得 商(一直到商为0为止),然后 取余数---除2取余法.
这种方法也可以推广为把 十进制数化为k进制数的 算法,称为除k取余法.
=81+18+6+1=106. 第二步:再把十进制数化为二进制数:
106=1101010(2). ∴10221(3)=106=110就是几,基数都是大于1的数.
按照十进制数的运算规则计算出结果, 结果就是十进制下该数的大小了.
1.3算法案例
进位制
十进制数3721中的3表示3个千,7表示7个百,2表示2个 十,1表示1个一,从而它可以写成下面的形式:
3721=3×103+7×102+2×101+1×100.
同理: 3421(5)= 3×53+4×52+2×51+1×50.
每一位上的数都是整数.

1.3 算法案例第三课时

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.人们为了计数和运算方便,约定了 人们为了计数和运算方便 各种进位制,这些进位制是什么概念, 各种进位制,这些进位制是什么概念, 它们与十进制之间是怎样转化的?对此, 它们与十进制之间是怎样转化的?对此, 我们从理论上作些了解和研究. 我们从理论上作些了解和研究.

1.3算法案例 课件-高一数学人教A版必修3

1.3算法案例 课件-高一数学人教A版必修3
f (x) 4x5 2x4 3.5x3 2.6x2 1.7x 0.8
用秦九韶算法求这个多项式当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进制

2020-2021学年人教B版必修三 1.3 算法案例 课件(36张)

2020-2021学年人教B版必修三    1.3 算法案例    课件(36张)

知识点二 秦九韶算法 预习教材 P37-39,思考并完成以下问题 已知多项式 f(x)=x5+3x4-3x3+4x2-x-1. (1)求 f(1). 提示:f(1)=1+3-3+4-1-1=3. (2)若求 f(39),再代入运算出现什么情况?
提示:运算量太大,不易运算.
知识梳理 秦九韶算法的算法原理 把一个 n 次多项式 f(x)=anxn+an-1xn-1+…+a1x+a0 改写成如下形式: f(x)=anxn+an-1xn-1+…+a1x+a0 =(anxn-1+an-1xn-2+…+a1)x+a0 =((anxn-2+an-1xn-3+…+a2)x+a1)x+a0 =… =(…((anx+an-1)x+an-2)x+…+a1)x+a0.
方法技巧 1.利用辗转相除法求给定的两个数的最大公约数,即利用带余除法,用 数对中较大的数除以较小的数,若余数不为零,则将余数和较小的数构成新的数 对,再利用带余除法,直到大数被小数除尽,则这时的较小数就是原来两个数的 最大公约数. 2.利用更相减损术求两个正整数的最大公约数的一般步骤是:首先判断两个正整 数是否都是偶数.若是,用 2 约简.也可以不除以 2,直接求最大公约数,这样不 影响最后结果.
延伸探究 1.将例题改为:把 210(6)化成十进制数为__________. 85 化成七进制数为__________. 解析:210(6)=2×62+1×6=78,
所以 85=151(7). 答案:78 151(7)
2.将例题改为:把 1234(5)化成七进制数为__________. 解析:∵1234(5)=1×53+2×52+3×51+4×50=194.而
[例 1] 分别用辗转相除法和更相减损术求 261 和 319 的最大公约数. [解析] 法一:(辗转相除法) 319÷261=1(余 58), 261÷58=4(余 29), 58÷29=2(余 0), 所以 319 与 261 的最大公约数为 29.

2014年人教A版必修三课件 1.3 算法案例

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

[问题3]能否探索更好的算法,来解决任意多 秦九韶《数书九章》. 项式的求值问题? v =2 0 f(x)=2x5-5x4-4x3+3x2-6x+7 v1=v0x-5=2×5-5=5 4 3 2 =(2x -5x -4x +3x-6)x+7 v =v x-4=5 × 5-4=21 2 1 =((2x3-5x2-4x+3)x-6)x+7 v3=v2x+3=21×5+3=108 2 =(((2x -5x-4)x+3)x-6)x+7 v4=v3x-6=108×5-6=534 =((((2x-5)x-4)x+3)x-6)x+7
如二进制可使用的数字有0和1,基数是2;
十进制可使用的数字有0,1,2,…,8,9等十个 数字,基数是10; 十六进制可使用的数字或符号有0~9等10 个数字以及A~F等6个字母(规定字母A~F对应 10~15),十六进制的基数是16. 注意:为了区分不同的进位制,常在数字 的右下脚标明基数,. 如111001(2)表示二进制数,34(5)表示5进制数.
同理: 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) 意思是:(1)第一个数字an不能等于0; (2)每一个数字an,an-1,…,a1,a0都须小于k. k进制的数也可以表示成不同位上数字与 基数k的幂的乘积之和的形式,即 anan-1…a1a0(k)=an×kn+an-1×kn-1 注意这是一 个n+1位数. 1 0 +…+a1×k +a0×k .
案例2 秦九韶算法 [问题1]设计求多项式f(x)=2x5-5x4-4x3+3x26x+7当x=5时的值的算法,并写出程序. 程序
x=5
f=2*x^5-5*x^4-4*x^3+3*x^2-6*x+7 PRINT f END
点评:上述算法一共做了15次乘法运算,5次加法 运算.优点是简单,易懂;缺点是不通用,不能解 决任意多项式求值问题,而且计算效率不高. n次多项式至多n(n+1)/2次乘法运算和n次加法运算
WEND
d=m-n
k*d
d
WHILE
PRINT END
IF d>n THEN
m=d
辗转相除法与更相减损术的比较:
(1)都是求最大公约数的方法,计算上 辗转相除法以除法为主,更相减损术以减法为 主;计算次数上辗转相除法计算次数相对较少, 特别当两个数字大小区别较大时计算次数的区 别较明显。 (2)从结果体现形式来看,辗转相除法 体现结果是以相除余数为0则得到,而更相减损 术则以减数与差相等而得到.
v5=v4x+7=534×5+7=2677 变为求几个一次式的值 几个乘法 所以,当x=5时,多项式的值是2677. 几个加法?
这种求多项式值的方法就叫秦九韶算法.
练习:用秦九韶算法求多项式 f(x)=2x6-5x5-4x3+3x2-6x当x=5时的值. 解:原多项式先化为: f(x)=2x6-5x5 +0×x4-4x3+3x2-6x+0 3 -6 0 605 3040 15170 608 3034 15170 所以,当x=5时,多项式的值是15170. 注意:n次多项式有n+1项,因此缺少哪一项 应将其系数补0.
列表 2 x=5 2
-5 10 5
0 -4 25 125 25 121
一般地,对于一个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,
解:110011(2)
=1×25+1×24+0×23+0×22+1×21+1×20
=1×32+1×16+1×2+1=51.
k进制数转化为十进制数的方法 先把k进制的数表示成不同位上数字与基 数k的幂的乘积之和的形式,即 anan-1…a1a0(k) =an×kn+an-1×kn-1+…+a1×k1+a0×k0 . 再按照十进制数的运算规则计算出结果.
辗转相除法求最大公约数算法:
• • • •
第一步,给定两个正数m,n 第二步,计算m除以n所得到余数r 第三步,m=n,n=r 第四步,若r=0,则m,n的最大公约数等于m; 否则返回第二步
思考 :需不需要比较m,n的大小 不需要
程序框图
开始
输入两个正数m,n
r=m MOD n
m=n n=r

r=0?
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) 这是一个在秦九韶算法中反复执行的步 骤,因此可用循环结构来实现.
[问题3]二进制只用0和1两个数字,这正好 与电路的通和断两种状态相对应,因此计算机 内部都使用二进制.计算机在进行数的运算时, 先把接受到的数转化成二进制数进行运算,再 把运算结果转化为十进制数输出. 那么二进制数与十进制数之间是如何转 化的呢?
例3:把二进制数110011(2)化为十进制数. 分析:先把二进制数写成不同位上数字与2 的幂的乘积之和的形式,再按照十进制数的运算 规则计算出结果.
[问题2]:我们都是利用找公约数的方法来求 最大公约数,如果两个数比较大而且根据我 们的观察又不能得到一些公约数,我们又应
该怎样求它们的最大公约数?比如求8251与6105的 Nhomakorabea大公约数?
〖研探新知〗
1.辗转相除法: 例1 求两个正数8251和6105的最大公约数。 分析:8251与6105两数都比较大,而且没 有明显的公约数,如能把它们都变小一点,根 据已有的知识即可求出最大公约数. 解:8251=6105×1+2146 显然8251与6105的最大公约数也必是2146 的约数,同样6105与2146的公约数也必是8251 的约数,所以8251与6105的最大公约数也是 6105与2146的最大公约数。
[问题2]有没有更高效的算法? 分析:计算x的幂时,可以利用前面的计算结 果,以减少计算量, 即先计算x2,然后依次计算
x x,( x x) x,(( x x) x) x
2 2 2
的值. 这析计算上述多项式的值,一共需要9次乘 法运算,5次加法运算.
第二种做法与第一种做法相比,乘法的运 算次数减少了,因而能提高运算效率.而且对于 计算机来说,做一次乘法所需的运算时间比做一 次加法要长得多,因此第二种做法能更快地得到 结果.
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的最大公约数。 以上我们求最大公约数的方法就是辗转相 除法。也叫欧几里德算法,它是由欧几里德在 公元前300年左右首先提出的。
例4:把89化为二进制的数.
分析:把89化为二进制的数,需想办法将89 先写成如下形式
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为止),然后取余数 =((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

输出m
结束
练习1:利用辗转相除法求两数4081与20723 的最大公约数. (53)
20723=4081×5+318;
4081=318×12+265;
318=265×1+53; 265=53×5+0.
2.更相减损术: 我国早期也有解决求最大公约数问题的算 法,就是更相减损术. 更相减损术求最大公约数的步骤如下:可 半者半之,不可半者,副置分母、子之数,以 少减多,更相减损,求其等也,以等数约之. 翻译出来为:第一步:任意给出两个正数; 判断它们是否都是偶数.若是,用2约简;若不是, 执行第二步. 第二步:以较大的数减去较小的数,接着把 较小的数与所得的差比较,并以大数减小数。继 续这个操作,直到所得的数相等为止,则这个数 (或这个数与约减数的乘积)就是所求的最大公
INPUT IF m<n
a=m m=n n=a
m, n
相关文档
最新文档