上周学生把一道有趣的选择题发给了我,题目是关于精确速算的,现共享如下(公务员考试也需要这个速算技巧)
题目大意是古时候收粮食民众要把自己收的粮食按比例上交给衙门作为赋税,收粮的官员当场受到1500石(石,计量单位),命人抽检稻谷的空心率,随手抓一把,数了数总数一共是304颗稻谷,共有30颗稻谷是空心的,求这1500石一共有多少空心的稻谷?
A.148石 B.149石 C.150石 D.151石
本题普通求解如下:空心率=30/304,所以空心稻谷总数=1500*(30/304),如果空心率是30/300那就很好算,空心稻谷总数就是150石,由于30/304<30/300,故空心率小于1/10,排除CD,剩下的AB怎么选是难点,因为148和149粗略算是算不出来的,需要用笔计算30/304的小数点后面五六位数,这样就很费时间,故介绍一个快速算法,能把误差降得很低但计算用时很少。
先看一个例子:求3/102的近似值,要求误差不超过千分之一。
解:3/102≈(3/100)*(1-2/100)=3/100-6/10000=0.03-0.0006=0.0294,误差率为(2/100)²=4/10000<1/1000,满足题意。
原理:设所求为a/(b+c),其中b是比c大很多的数且b是整十整百整千的数,c比b小几十倍几百倍(以上提为例a就是3,b就是100,c就是2),弱令a/(b+c)的近似值为(a/b)*(1-c/b),因为(a/b)*(1-c/b)=【a/(b+c)】*【(b+c)/b】*(1-c/b)=【a/(b+c)】(1+c/b)(1-c/b)=【a/(b+c)】*(1-c²/b²),显然近似值【a/(b+c)】*(1-c²/b²)与原式【a/(b+c)】的误差为(1-c²/b²),只要c小于b33倍以上,则c²/b²就小于千分之一以上。c²/b²就是近似值与真实值之间的误差率。上题中c为2,b为100,误差率为4/10000小于千分之一。
回到最开始的稻谷空心率的题,选项AB为148和149,差别率大概为1/150=(1/100)*(2/3)小于1/100,只要所求的近似值误差率小于百分之一即可。30/304≈(30/300)*(1-4/300)=(30/304)*(304/300)*(1-4/300)=(30/304)*(1-4²/300²),显然误差率为4²/300²=16/90000=1.7777*10^(-4)小于千分之一,显然误差率已经足可以区别148和149,稻谷空心率近似值为(30/300)*(1-4/300)=0.1*(1-2/150),故空心稻谷总数为1500*【0.1*(1-2/150)】=150-150*2/150=148。