文档详情

高一数学算法案例探究

hh****pk
实名认证
店铺
DOC
81.50KB
约7页
文档ID:210230615
高一数学算法案例探究_第1页
1/7

[典型例题探究]【例1】我国《算经十书》之一《孙子算经》中有这样一个问题「今 有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二.问物几何? 答曰:二十三.”你能用程序解决这个问题吗?分析:设物共加个,被3, 5, 7除所得的商分别为x、y、z,则这个 问题相当于求不定方程m = 3x + 2,< tn = 5y + 3, 的正整数解.m =7z + 2加应同时满足下列三个条件:(1)加MOD 3=2; (2) m MOD 5=3; (3)mM0D 7=2.因此,可以让加从2开始检验,若3个条件中有任何一 个不成立,则m递增1, 一直到加同时满足三个条件为止.解:m=27=0WHILE 戶0IF m MOD 3=2 AND m MOD 5=3AND m MOD 7=2 THENPRINT “物体的个数为:";m戶1ELSEm=m+1END IFWENDEND【例2】我国古代数学家张邱建编《张邱建算经》中记有有趣的数学 问题:“今有鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一凡百钱, 买鸡百只,问鸡翁、母、雏各几何? ”你能用程序解决这个问题吗?分析:设鸡翁、母、雏各X、〉,、只,则5x + 3y + - = 100,①“ ・3x + y + z = 100,②rh②,得 z=100—x—y,③规律发现这个问题的通用解法称为 “孙子剩余定理”或“中国剩余 定理”.著名的“韩信点兵问题” 即为此例的应用.考虑到加被7除余数为2, 故m至少是9,也可以从m=9开 始验证.设置戶0,戶1的目的是让循 环进行或结束,否则循环无法停 下來.此处让f=0时进行循环, 时中止循坏.实际上按此法求出来的只是 符合条件的最小正整数.这个问题在数学上称为“百 鸡问题”.把三元一次方程组转化为二 元一次不定方程.从x的最小值开始验证,循 环进行.由于 7x+4y=100,且 x、)€Z, 故 xW14,)W25.③代入①,得 5x+3),+lr_ y =100,即 7x+4)=100. ④求方程④的解,可由程序解之.解:x=\WHILE x<=14WHILE y<=25IF 7*x+4*v=100 THEN z=\OO~x—yPRINT “鸡翁、母、雏的个数别为:”;x, y, zEND IFy=y+1WENDx=x4-1)=1WENDEND对于多重循环或条件嵌套, 要注意每一重都有开头和结尾, 程序本身也有一个结尾,不能丢 掉任何一个.实际上,该题可以不对方程组进行化简,通过设置多重循环的方式得 以实现.由①、②可得x最大值为20, y最大值为33, z最大值为100,且 z为3的倍数.程序如下:x=l>f=l日WHILE x<=20WHILE),V=33WHILE z<=100IF 5*x+3*y+z/3=100 ANDx+)W=100 THENPRINT “鸡翁、母、雏的个数分别为:”;兀、y、zEND IFz=z+3WENDv=y+lz=3WENDx=x+\)=1WEND用二分法求方程的近似值一 般収区间B,刃具有以下特征: f () <0, f (b) >0.相应的程序框图是:END【例3】写岀用二分法求方程x3-x-l=0在区间[1, 1.5]上的一个 解的算法(误差不超过0.001).分析:教材P23练习第1题已研究过求<—2=0的近似根的方法.本例 与上述方法类似,只是方程稍微复杂了些.由于/(I) =13-1-1 = -1<0, / (1.5) =1.53-1.5-1=0.875>0,所以取[1, 1.5]中点上匕=1.25 研 究,以下同求,一2=0的根的方法.解:a-\/?=1.5c=0.001DOx- (d+b) /2/(d) =a a~ 1 f (x) =X 3—X— 1IF f (x) =0 THENPRINT “x=”; xELSEIF f (v)町(x) <0 THEN b=xELSEEND IFEND IFLOOP UNTIL ABS (a~b) <=cPRINT “方程的一个近似解x=”; xEND【例4】(1)将101111011(2)转化为十进制的数;(2)将53⑻转化为二进制的数.分析:(1)将各位上的数字与基数的幕的积求和.(2)先转化为十进制的数,再利用除2取余法.解:(1) 101111011 ⑵=1 X 28+0 X 27+1 X 26+1 X 25+1 X 24+1 X 23+0 X 22+1 X2,+l=379.(开始)/输出x/0 1不同进位制之间的转化是一 种通法,必须熟练常握.(2) 53(8)=5X0+3=43.注意取余数的顺序:从下向上..•.53(8)=101011 <2).【例5】用冒泡排序法将下列各数排成一列:8, 6, 3, 18, 21, 67, 54.并写岀各趟的最后结果及各趟完成交换的次数.注意“一・趟”的意义:每一 趟都从头开始,每两个两个地比 较,一直到最后一个数.分析:每一趟都从头开始,两个两个地比较,若前者小,则两数位置 不变;否则,调整这两个数的位置.解:第一趟的结果是:6 3 8 18 21 54 67完成3次交换.第二趟的结果是:3 6 8 18 21 54 67完成1次交换.第三趟交换次数为0,说明已排好次序,即 3 6 8 18 21 54 67.相当于用提公因式法分解 因式.【例 6)用秦九韶算法写出求/ (x) = 1 +x+0.5x2+0. 1 6667x3+0.04 167x4+ 0.00833?在x=—0.2时的值的过程.分析:先把函数整理成f (x) = ((((0.00833x4-0.04167) x+0.16667) x+0.5) x+1) x+1,按照 从内向外的顺序依次进行.解:4一0.26/5=0.00833 Vo=5=O.OO8333 ^4=0.04167 V]=V(m+G4=0.0403=0.016667 V2= V|X+3=0.158676f2=0.5 V3= V2X+t72=0.46827如=1 |=0.90635a()= 1 V5=V4X4-6Z()=0.81873:.f (-0.2) =0.81873.通过分解步骤看出作乘法的 次数少,比直接代入求幕的运算 速度要快得多.。

下载提示
相似文档
正为您匹配相似的精品文档