13算法案例
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
〖教学设计〗
[问题 设计求多项式 问题1]设计求多项式 问题 设计求多项式f(x)=2x5-5x4-4x3+3x2-6x+7 时的值的算法,并写出程序 当x=5时的值的算法 并写出程序 时的值的算法 并写出程序. 程序
x=5 f=2*x^5-5*x^4-4*x^3+3*x^2-6*x+7 * * * * * PRINT f END
利用辗转相除法求最大公约数的步骤如下: 利用辗转相除法求最大公约数的步骤如下: 第一步:用较大的数m除以较小的数n 第一步:用较大的数m除以较小的数n得到 一个商q 和一个余数r (m=n× 一个商q0和一个余数r0;(m=n×q0+r0) 第二步: 第二步:若r0=0,则n为m,n的最大公约 ≠0,则用除数n除以余数r 数;若r0≠0,则用除数n除以余数r0得到一个 和一个余数r 商q1和一个余数r1;(n=r0×q1+r1) 第三步: 第三步:若r1=0,则r0为m,n的最大公约 ≠0,则用除数r 除以余数r 数;若r1≠0,则用除数r0除以余数r1得到一个 和一个余数r 商q2和一个余数r2;(r0=r1×q2+r2) …… 依次计算直至r 此时所得到的r 依次计算直至rn=0,此时所得到的rn-1 即为所求的最大公约数。 即为所求的最大公约数。
[问题 有没有更高效的算法 问题2]有没有更高效的算法 问题 有没有更高效的算法? 分析:计算 的幂时,可以利用前面的计算结 计算x的幂时 分析 计算 的幂时 可以利用前面的计算结 以减少计算量, 果,以减少计算量 以减少计算量 即先计算x 然后依次计算 即先计算 2,然后依次计算
x x, ( x x) x, (( x x) x) x
〖研探新知〗
1.辗转相除法: 1.辗转相除法: 辗转相除法 求两个正数8251 6105的最大公约数 8251和 的最大公约数。 例1 求两个正数8251和6105的最大公约数。 分析:8251与6105两数都比较大 两数都比较大, 分析:8251与6105两数都比较大,而且没 有明显的公约数,如能把它们都变小一点, 有明显的公约数,如能把它们都变小一点,根 据已有的知识即可求出最大公约数. 据已有的知识即可求出最大公约数. 8251=6105× 解:8251=6105×1+2146 显然8251与6105的最大公约数也必是2146 显然8251与6105的最大公约数也必是2146 8251 的最大公约数也必是 的约数,同样6105 2146的公约数也必是 6105与 的公约数也必是8251 的约数,同样6105与2146的公约数也必是8251 的约数,所以8251 6105的最大公约数也是 8251与 的约数,所以8251与6105的最大公约数也是 6105与2146的最大公约数 的最大公约数。 6105与2146的最大公约数。
华侨中学
张爱梅
案例1 案例 辗转相除法与更相减损术
一、三维目标 (a)知识与技能 1.理解辗转相除法与更相减损术中蕴含的数学原 1.理解辗转相除法与更相减损术中蕴含的数学原 并能根据这些原理进行算法分析。 理,并能根据这些原理进行算法分析。 2.基本能根据算法语句与程序框图的知识设计完 2.基本能根据算法语句与程序框图的知识设计完 整的程序框图并写出算法程序。 整的程序框图并写出算法程序。 (b)过程与方法 在辗转相除法与更相减损术求最大公约数的学习 过程中对比我们常见的约分求公因式的方法, 过程中对比我们常见的约分求公因式的方法,比较它 们在算法上的区别, 们在算法上的区别,并从程序的学习中体会数学的严 领会数学算法计算机处理的结合方式, 谨,领会数学算法计算机处理的结合方式,初步掌握 把数学算法转化成计算机语言的一般步骤。 把数学算法转化成计算机语言的一般步骤。
2 2 2
的值. 这析计算上述多项式的值 一共需要 次乘 的值 这析计算上述多项式的值,一共需要 一共需要9次乘 法运算,5次加法运算 次加法运算. 法运算 次加法运算 第二种做法与第一种做法相比,乘法的运 第二种做法与第一种做法相比 乘法的运 算次数减少了,因而能提高运算效率 因而能提高运算效率.而且对于 算次数减少了 因而能提高运算效率 而且对于 计算机来说,做一次乘法所需的运算时间比做一 计算机来说 做一次乘法所需的运算时间比做一 次加法要长得多,因此第二种做法能更快地得到 次加法要长得多 因此第二种做法能更快地得到 结果. 结果
(c)情感态度与价值观 1.通过阅读中国古代数学中的算法案例 通过阅读中国古代数学中的算法案例, 1.通过阅读中国古代数学中的算法案例,体会中 国古代数学对世界数学发展的贡献。 国古代数学对世界数学发展的贡献。 2.在学习古代数学家解决数学问题的方法的过程 2.在学习古代数学家解决数学问题的方法的过程 中培养严谨的逻辑思维能力, 中培养严谨的逻辑思维能力,在利用算法解决数学问题 的过程中培养理性的精神和动手实践的能力。 的过程中培养理性的精神和动手实践的能力。 二、教学重难点 重点: 重点:理解辗转相除法与更相减损术求最大公约数 的方法。 的方法。 难点: 难点:把辗转相除法与更相减损术的方法转换成程 序框图与程序语言。 序框图与程序语言。 三、学法 在理解最大公约数的基础上去发现辗转相除法与更 相减损术中的数学规律, 相减损术中的数学规律,并能模仿已经学过的程序框图 与算法语句设计出辗转相除法程序框图与算法程序。 与算法语句设计出辗转相除法程序框图与算法程序。
2.更相减损术: 2.更相减损术: 更相减损术 我国早期也有解决求最大公约数问题的算 就是更相减损术。 法,就是更相减损术。 更相减损术求最大公约数的步骤如下: 更相减损术求最大公约数的步骤如下:可 半者半之,不可半者,副置分母子之数 子之数, 半者半之,不可半者,副置分母 子之数,以少 减多,更相减损,求其等也,以等数约之。 减多,更相减损,求其等也,以等数约之。 翻译出来为:第一步:任意给出两个正数; 翻译出来为:第一步:任意给出两个正数; 判断它们是否都是偶数。若是, 约简;若不是, 判断它们是否都是偶数。若是,用2约简;若不是, 执行第二步。 执行第二步。 第二步:以较大的数减去较小的数, 第二步:以较大的数减去较小的数,接着把 较小的数与所得的差比较,并以大数减小数。 较小的数与所得的差比较,并以大数减小数。继 续这个操作,直到所得的数相等为止, 续这个操作,直到所得的数相等为止,则这个数 等数)就是所求的最大公约数。 (等数)就是所求的最大公约数。
作业: 作业
课本P35页练习 页练习T1; 课本 页练习 P38页A组T1. 页 组
案例2 案例 秦九韶算法
一、三维目标 (a)知识与技能 了解秦九韶算法的计算过程, 了解秦九韶算法的计算过程,并理解利用秦九韶 算法可以减少计算次数提高计算效率的实质。 算法可以减少计算次数提高计算效率的实质。 (b)过程与方法 模仿秦九韶计算方法,体会古人计算构思的巧妙. 模仿秦九韶计算方法,体会古人计算构思的巧妙. (c)情感态度与价值观 通过对秦九韶算法的学习, 通过对秦九韶算法的学习,了解中国古代数学家 对数学的贡献,充分认识到我国文化历史的悠久。 对数学的贡献,充分认识到我国文化历史的悠久。 二、教学重难点 重点:1.秦九韶算法的特点 秦九韶算法的特点; 重点:1.秦九韶算法的特点; 难点: 2.秦九韶算法的先进性理解 难点: 2.秦九韶算法的先进性理解 .
创设情景, 〖创设情景,揭示课题〗 [问题1]:在小学,我们已经学过求最大公约数 问题1]:在小学, 1] 的知识,你能求出18 30的最大公约数吗 18与 的最大公约数吗? 的知识,你能求出18与30的最大公约数吗? 2 18 30 先用两个数公有的质因数 先用两个数公有的质因数 3 9 15 连续去除,一直除到所得 连续去除 一直除到所得 3 5 的商是互质数为止,然后 的商是互质数为止 然后 ∴18和30的最大公约 ∴18和30的最大公约 把所有的除数连乘起来. 把所有的除数连乘起来 数是2 数是2×3=6. 问题2]: 2]:我们都是利用找公约数的方法来求最大 [问题2]:我们都是利用找公约数的方法来求最大 公约数, 公约数,如果公约数比较大而且根据我们的观察 又不能得到一些公约数, 又不能得到一些公约数,我们又应该怎样求它们 的最大公约数?比如求8251 6105的最大公约数 8251与 的最大公约数? 的最大公约数?比如求8251与6105的最大公约数?
〖研探新知〗
1.辗转相除法: 1.辗转相除法: 辗转相除法 求两个正数8251 6105的最大公约数 8251和 的最大公约数。 例1 求两个正数8251和6105的最大公约数。 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的最大公约数 的最大公约数。 则37为8251与6105的最大公约数。 以上我们求最大公约数的方法就是辗转相 除法。也叫欧几里德算法, 除法。也叫欧几里德算法,它是由欧几里德在 公元前300年左右首先提出的。 300年左右首先提出的 公元前300年左右首先提出的。
辗转相除法的程序框图及程序: 4. 辗转相除法的程序框图及程序:
开始
输入两个正数m,n 输入两个正数 m<n?
是
x=n n=m m=x n=r m=n
否
r=m MOD nபைடு நூலகம்
r≠0?
是
否
输出n 输出
结束
INPUT m,n IF m<n THEN x=n n=m m=x END IF r=m MOD n WHILE r<>0 m=n n=r r=m MOD n WEND PRINT n END
98与 的最大公约数. 例2 用更相减损术求98与63的最大公约数. 用更相减损术求98 63的最大公约数 由于63不是偶数, 98和63以大数 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 所以,98与63的最大公约数是7。 练习2:用更相减损术求两个正数84与72的最大 练习2 用更相减损术求两个正数84与72的最大 84 公约数。 公约数。 (12)
点评:上述算法一共做了 次乘法运算 点评 上述算法一共做了15次乘法运算 次 上述算法一共做了 次乘法运算,5次 加法运算.优点是简单 易懂;缺点是不通用 优点是简单,易懂 缺点是不通用,不能 加法运算 优点是简单 易懂 缺点是不通用 不能 解决任意多项多求值问题,而且计算效率不高 而且计算效率不高. 解决任意多项多求值问题 而且计算效率不高
练习1 利用辗转相除法求两数4081与 练习1:利用辗转相除法求两数4081与 4081 20723的最大公约数 的最大公约数. 20723的最大公约数. (53) 20723=4081×5+318; × 4081=318×12+265; × 318=265×1+53; × 265=53×5+0. ×
3.辗转相除法与更相减损术的比较: 3.辗转相除法与更相减损术的比较: 辗转相除法与更相减损术的比较 (1)都是求最大公约数的方法,计算上 都是求最大公约数的方法, 辗转相除法以除法为主, 辗转相除法以除法为主,更相减损术以减法为 主;计算次数上辗转相除法计算次数相对较少, 计算次数上辗转相除法计算次数相对较少, 特别当两个数字大小区别较大时计算次数的区 别较明显。 别较明显。 从结果体现形式来看, (2)从结果体现形式来看,辗转相除法 体现结果是以相除余数为0则得到, 体现结果是以相除余数为0则得到,而更相减损 术则以减数与差相等而得到. 术则以减数与差相等而得到.