搜索
    上传资料 赚现金
    英语朗读宝
    知识讲解_算法案例_基础练习题第1页
    知识讲解_算法案例_基础练习题第2页
    知识讲解_算法案例_基础练习题第3页
    还剩6页未读, 继续阅读
    下载需要10学贝 1学贝=0.1元
    使用下载券免费下载
    加入资料篮
    立即下载

    知识讲解_算法案例_基础练习题

    展开

    这是一份知识讲解_算法案例_基础练习题,共9页。
    算法案例【学习目标】1.理解辗转相除法与更相减损术中蕴含的数学原理,并能根据这些原理进行算法分析;2.基本能根据算法语句与程序框图的知识设计完整的程序框图并写出算法程序;3.了解秦九韶算法的计算过程,并理解利用秦九韶算法可以减少计算次数提高计算效率的实质;4.了解各种进位制与十进制之间转换的规律,会利用各种进位制与十进制之间的联系进行各种进位制之间的转换.【要点梳理】要点一、辗转相除法也叫欧几里德算法,它是由欧几里德在公元前300年左右首先提出的.利用辗转相除法求最大公约数的步骤如下:第一步:用较大的数m除以较小的数n得到一个商q0和一个余数r0第二步:若r0=0,则n为m,n的最大公约数;若r00,则用除数n除以余数r0得到一个商q1和一个余数r1第三步:若r1=0,则r0为m,n的最大公约数;若r10,则用除数r0除以余数r1得到一个商q2和一个余数r2……依次计算直至rn=0,此时所得到的rn-1即为所求的最大公约数.用辗转相除法求最大公约数的程序框图为:程序:INPUT m=;mINPUT n=;nIF  m<n THEN  x=mm=n n=xEND IFr=m MOD nWHILE  r<>0 r=m MOD n m=nn=rWENDPRINT  nEND要点诠释:辗转相除法的基本步骤是用较大的数除以较小的数,考虑到算法中的赋值语句可以对同一变量多次赋值,我们可以把较大的数用变量m表示,把较小的数用变量n表示,这样式子就是一个反复执行的步骤,因此可以用循环结构实现算法.要点二、更相减损术我国早期也有解决求最大公约数问题的算法,就是更相减损术.更相减损术求最大公约数的步骤如下:可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也.以等数约之.翻译出来为:第一步:任意给出两个正整数;判断它们是否都是偶数.若是,用2约简;若不是,执行第二步.第二步:以较大的数减去较小的数,接着把较小的数与所得的差比较,并以大数减小数.继续这个操作,直到所得的数相等为止,则这个数(等数)就是所求的最大公约数.理论依据:,得有相同的公约数更相减损术一般算法:第一步,输入两个正整数第二步,如果,则执行,否则转到第三步,将的值赋予第四步,若,则把赋予,把赋予,否则把赋予,重新执行第五步,输出最大公约数.程序:INPUT a=,aINPUT b=,bWHILE  a<>b  IF  a>=ba=a-b;ELSE   b=b-aWENDENDPRINT  b或者INPUT 请输入两个不相等的正整数;a,bi=0WHILE a MOD 2=0 AND b MOD 2=0a=a/2b=b/2i=i+1WENDDOIF b<a THENt=aa=bb=tEND IFc=aba=bb=cLOOP UNTIL a=bPRINT a^iEND要点诠释:用辗转相除法步骤较少,而更相减损术虽然有些步骤较长,但运算简单.要点三、秦九韶计算多项式的方法,则有,其中.这样,我们便可由依次求出要点诠释:显然,用秦九韶算法求n次多项式的值时只需要做n次乘法和n次加法运算要点四、进位制进位制是一种记数方式,用有限的数字在不同的位置表示不同的数值.可使用数字符号的个数称为基数,基数为n,即可称n进位制,简称n进制.现在最常用的是十进制,通常使用10个阿拉伯数字0-9进行记数.对于任何一个数,我们可以用不同的进位制来表示.比如:十进数57,可以用二进制表示为111001,也可以用八进制表示为71、用十六进制表示为39,它们所代表的数值都是一样的.表示各种进位制数一般在数字右下角加注来表示,如111001(2)表示二进制数,34(5)表示5进制数.1.k进制转换为十进制的方法:,把k进制数a转化为十进制数b的算法程序为:INPUT a,k,n=;a,k,ni=1b=0WHILE i<=n t=GET a[i] b=b+t*k^(i-1) i=i+1WENDPRINT bEND2.十进制转化为k进制数b的步骤为:第一步,将给定的十进制整数除以基数k,余数便是等值的k进制的最低位;第二步,将上一步的商再除以基数k,余数便是等值的k进制数的次低位;第三步,重复第二步,直到最后所得的商等于0为止,各次所得的余数,便是k进制各位的数,最后一次余数是最高位,即除k取余法.要点诠释:1、在k进制中,具有k个数字符号.如二进制有0,1两个数字.2、在k进制中,由低位向高位是按逢k进一的规则进行计数.3、非k进制数之间的转化一般应先转化成十进制,再将这个十进制数转化为另一种进制的数,有的也可以相互转化.【典型例题】类型一:辗转相除法与更相减损术1.用辗转相除法求下列两数的最大公约数,并且用更相减损术检验你的结果:18036;(229484【答案】(14242   【解析】(180=36×2+8    36=8×4+4    8=4×2+0    8036的最大公约数是4    验证:8036=44    4436=8    368=28    288=20    208=12    128=4    84=4    8036的最大公约数为4    2294=84×3+42    84=42×2    29484的最大公约数是42    验证:29484都是偶数可同时除以2    即取14742的最大公约数后再乘2    14742=105    10542=63    6342=21    4221=21    29484的最大公约数为21×2=42【总结升华】比较辗转相除法与更相减损术的区别(1)都是求最大公约数的方法,计算上辗转相除法以除法为主,更相减损术以减法为主,计算次数上辗转相除法计算次数相对较少,特别当两个数字大小区别较大时计算次数的区别较明显;(2)从结果体现形式来看,辗转相除法体现结果是以相除余数为0则得到,而更相减损术则以减数与差相等而得到.由该题可以看出,辗转相除法得最大公约数的步骤较少.对比两种方法控制好算法的结束,辗转相除法是到达余数为0,更相减损术是到达减数和差相等.举一反三:【变式1】(1)用辗转相除法求12348的最大公约数.(2)分别用辗转相除法和更相减损术求105与357的最大公约数.    【答案】21【解析】(1)123=2×48+27   48=1×27+21   27=1×21+6   21=3×6+3   6=2×3+0最后6能被3整除,得12348最大公约数为3.(2)辗转相除法:357=105×3+42,105=42×2+21,42=21×2.    故105与357的最大公约数为21.    更相减损术:357-105=252,252-105=147,147-105=42,105-42=63,63-42=21,42-21=21.    故105与357的最大公约数为21.2.求三个数:16854264的最大公约数.【思路点拨】运用更相减损术或辗转相除法,先求16854的最大公约数a,再求a264的最大公约数.【答案】6【解析】采用更相减损术先求16854的最大公约数.    1685411454605465464864263663062461861266    16854的最大公约数为6    采用辗转相除法求6264的最大公约数.    因为264=44×6+0,所以62646的最大公约数,也是三个数的最大公约数.【总结升华】求最大公约数通常有两种方法:一是辗转相除法;二是更相减损术,对于3个数的最大公约数的求法,则是先求其中两个数的最大公约数m,再求m与第三个数的最大公约数.同样可推广到求3个数以上的数的最大公约数.举一反三:   【变式1】求三个数324243135的最大公约数.【解析】324=243×1+81    243=81×3+0    324243的最大公约数为81    135=81×1+54    81=54×1+27    54=27×2+0    81135的最大公约数为27    三个数324243135的最大公约数为27    更相减损术:    324243=81    24381=162    16281=81    81324243的最大公约数.    13581=54    8154=27    5427=27    2781135的最大公约数.    三个数324243135的最大公约数为27类型二:秦九韶算法32015秋 福建月考)利用秦九韶算法计算x=5时的值.【思路点拨】据秦九韶算法,把多项式改写为f(x)=((((x+2)x+3)x+4)x+5)x+6.按照从内到外的顺序,依次计算x=5时的值,即可得出.【答案】4881【解析】依据秦九韶算法,把多项式改写为f(x)=((((x+2)x+3)x+4)x+5)x+6按照从内到外的顺序,依次计算x=5的值:f5=4881【总结升华】利用秦九韶算法计算多项式的值的关键是能正确地将所给多项式改写,然后由内向外逐层计算,由于下一次计算需用到上一次的结果,故应认真、细心,确保中间结果的准确性.举一反三:【变式1】2016秋 河北张家口月考)用秦九韶算法计算多项式x=4时的V4值.【答案】220【解析】f(x)=(((((3x+5)x+6)x+79)x8)x+35)x+12v0=3v1=3×(4)+5=7v2=(7)×(4)+6=34v3=34×(4)+79=57v4=57×(4)8=220【变式2】用秦九韶算法计算多项式x=0.4时的值时,需做加法和乘法的次数和是(        A10    B9    C12    D8 【答案】  C 【解析】      加法6次,乘法6次,    6+6=12(次),故选C类型三:进位制4.把87化为二进制数. 【答案】10101112    【解析】  因为87=2×43+143=2×21+121=2×10+110=2×5+05=2×2+12=2×1+01=2×0+1    所以87=2×(2×(2×(2×(2×2+1)+0)+1)+1)+1           =2×(2×(2×(2×(22+1)+0)+1)+1)+1           =           =1×26+0×25+1×24+0×23+1×22+1×2+1           =10101112    【总结升华】(1)本题的算法叫除2取余法.上述解法可以推广到把十进制数化为k进制数的算法,称为除k取余法.    2)本题还可以用下面的除法算式表示如图:    把上式各步所得的余数从下到上排列,得87=10101112 举一反三:【变式】(1)将十进制数2l转化为五进制数.2)把十进制数48转化为二进制数. 【解析】(1)用除5取余法,可得        21=4152) 将十进制数48转化为二进制数的除法算式如图所示.    把上式中各步所得的余数从下到上排列,得到48=1100002    【总结升华】在解答过程中常会出现把上图中各步所得的余数从上到下排列的错误,应注意避免.    5.把下列各数化为十进制数.1201213;(2201214【答案】(1178   2537    【解析】  1201213=2×34+0×33+1×32+2×3+1=178    2201214=2×44+0×43+1×42+2×4+1=537    【总结升华】k进制数转化为十进制数的方法是把k进制数表示为各位上的数字与k的幂的乘积之和,从右边起,第i位数字对应k的幂为举一反三: 【变式1】在十进制中,,那么在五进制中数码2 004折合成十进制为(    A29    B254    C602    D2 004【答案】B【解析】,故选B【变式2将十进制数34换算成二进制数,即(3410=________【答案】1000102).【解析】34÷2=17……017÷2=8……18÷2=4……04÷2=2……02÷2=1……01÷2=0……13410=1000102故答案为:1000102).【总结升华】在解答过程中常会出现把图中各步所得的余数从上到下排列的错误,应注意避免. 

    相关试卷

    知识讲解_余弦定理_基础练习题:

    这是一份知识讲解_余弦定理_基础练习题,共7页。

    知识讲解_算法案例_提高练习题:

    这是一份知识讲解_算法案例_提高练习题,共9页。

    知识讲解_平面_基础练习题:

    这是一份知识讲解_平面_基础练习题,共9页。

    欢迎来到教习网
    • 900万优选资源,让备课更轻松
    • 600万优选试题,支持自由组卷
    • 高质量可编辑,日均更新2000+
    • 百万教师选择,专业更值得信赖
    微信扫码注册
    qrcode
    二维码已过期
    刷新

    微信扫码,快速注册

    手机号注册
    手机号码

    手机号格式错误

    手机验证码 获取验证码

    手机验证码已经成功发送,5分钟内有效

    设置密码

    6-20个字符,数字、字母或符号

    注册即视为同意教习网「注册协议」「隐私条款」
    QQ注册
    手机号注册
    微信注册

    注册成功

    返回
    顶部
    Baidu
    map