VimIy微民网,让世界倾听微民的声音! 设为首页 | 加入收藏 | 网站地图
当前位置:主页 > 大杂烩 >

【数学相关】 9位数开立方速算

整理时间:2014-01-18 10:40 来源:www.vimiy.com 作者:编辑 点击:

【楼主】2014-01-22 23:37

» 9位数开立方速算
    在前面方舟子发的打假文章中,贴出了华罗庚的《天才与锻炼》,其中讲到了六位数的开立方的速算:
    
    “然后,我告诉他,我的完整想法是:把六位数开立方,从前三位决定答数的第一位,答数的第二位根据原数的末位而定:2、8互换,3、7互换,其它照旧(这是因为1、2、3、4、5、6、7、8、9立方的末位分别为1、8、7、4、5、6、3、2、9)。
     例如314,432的立方根是68,前三位决定6,末位是2,它决定答数的末位是8。”
    
    这个比较容易理解,稍微锻炼下就能计算了,但是后面提到
    
    “沙昆塔拉可以脱口而出地回答188,132,517的立方根是573。当然188决定了首位5,末位7决定了3,但读者试想一下,中间的7怎样算?
    归纳起来可以看出有两个方法:一个由头到尾,一个由尾到头。
    
    -----------------------------------------------------------分割线
    
    这一段没有给出过程的解法具体是怎样呢,我想了个把小时,摸清了点验算的规律,大家看看对不对。
    
    188,132,517已经确定首位是5了,那么用188减去5的立方等于63,与中间3位数组成一个五位数63,132,我们就用这个五位数来验算出立方根的中间位数字
    
    接下来用首位数5的平方乘以300等于7,500,用63,132除以7,500得出商为8,余数就不管了
    
    
    然后用7,500加上(3X5X8*10=1200)再加上(8*8=64)得出8764,用8764*8,结果很容易看出大于63,132,所以8偏大,应减去1取值7.
    
    用7验算的结果是8599*7,小于63,132,所以中间位数是7,前面的立方根结果是573。
    
    
    我们再拿一组数来验算这个估算过程的适用性: 260,917,119
    
    首位数很容易得出是6,用260减去6的立方得到44,跟中间的数字组成44,917,用这个数除以300*36,得出商为4,余数忽略
    
    然后用(300*36=10800)加上(3*6*4*10)加上(4*4=16)得出11,516, 再乘以4等于46,064,大于44,917,故4偏大,应减去1取值3
    
    用3验算的结果是11,349*3, 小于44,917, 所以中间数是3
    
    最后位明显是9,所以结果是639
    
    -----------
    补充从尾数开始的计算,设立方根=100a+10b+c, 那么只需要3c^2*b的个位数与c^3的十位数相加,得出的结果的个位数与原9尾数的十位数字一致,
    
    重新计算前面的数,7b+2的个位数为1,那么b=7
    
    从尾数开始算貌似简单许多!
    
    
    在心算的时候其实可以做很多简化,熟练锻炼后很容易马上就得出结果,大家可以试看看。
    


网友评论2014-01-22 23:49


    这已经是我第三次看这个东西了
    
网友评论2014-01-23 00:03


    Reply Post by 放开那男的 (2014-01-22 23:49):
    
    这已经是我第三次看这个东西了
    
    后面的是我自己写的,你怎么就第三次看到了呢。。。
    
网友评论2014-01-23 00:25


    研究了一下用后面的两位确定十位数的手段。
    
    789^3=491169069
    
    用前三位分段,判定首位是7,2837律判定末尾是9
    
    这个不用赘述了。
    
    然后考虑十位数。
    
    对于一个三位数,(M00+N0+X)^3
    
    展开之后只有,3·N0·X·X+X^3两项的结果会干涉到十位数。
    
    而X是已知的,算出N就比较简单了。
    
    
    我的算法。——加一整除法。
    
    结果末位为069,先减去9的立方729,个位舍去,得到十位数是4
    
    然后依次除以 3 X X
    
    如果不能整除,则在4前面+1,不能再+1直到整除,进行三次得到各位。
    
    
    4/3 no
    14/3 no
    
    24/3=8
    next
    
    8/9 no
    
    18/9=2 yes
    next
    
    2/9 no
    
    ……
    72/9=8
    
    ok
    十位为8
    
    end
    
    这样做运算量小很多。
    
    不过这里涉及到十位数是5和0的问题。
    
    对于末位是奇数来说
    
    十位数的差值为0时,根第二位是0,差值5,根二位5
    
    但是根末位是偶数时,我要在算算。有漏洞
    


网友评论2014-01-23 01:20


    Reply Post by zstotal (2014-01-23 00:25):
    
    研究了一下用后面的两位确定十位数的手段。
    
    789^3=491169069
    
    用前三位分段,判定首位是7,2837律判定末尾是9
    
    这个不用赘述了。
    
    然后考虑十位数。
    
    对于一个三位数,(M00+N0+X)^3
    
    展开之后只有,3·N0·X·X+X^3两项的结果会干涉到十位数。
    
    而X是已知的,算出N就比较简单了。
    
    
    我的算法。——加一整除法。
    
    结果末位为069,先减去9的立方729,个位舍去,得到十位数是4
    
    然后依次除以 3 X X
    
    如果不能整除,则在4前面+1,不能再+1直到整除,进行三次得到各位。
    
    
    4/3 no
    14/3 no
    
    24/3=8
    next
    
    8/9 no
    
    18/9=2 yes
    next
    
    2/9 no
    
    ..
    
    按照你的思路进行了从尾数开始的计算,不过利用的是展开式X^3-Y^3=(X-Y)(X^2+XY+Y^2)
    
    设X为立方根=100a+10b+c Y=100a+10b
    
    因为Y^3的后三位都是0,那么X^3的后三位数字与X^3-Y^3的后三位数字相同
    
    将X,Y代入公式(100a+10b+c)^3-(100a+10b)^3=c
    
    只考虑后两位,那么只考虑c^3+30bc^2即可,那么结果就是729+2430b, 然后开始验算十位的数字即可也就是3b+2的个位数等于6,那么b=8
    
网友评论2014-01-23 09:05


    我已经看不懂你们在说什么了
    
网友评论2014-01-23 09:20


    楼上这个公式!!
    待我撸撸。
    
网友评论2014-01-23 09:24


    如果是非完全立方数,保留三位小数,难度立马上去了
    
网友评论2014-01-23 09:27


    从上面某楼的回复来看,应该是马龙……
    
网友评论2014-01-23 18:29


    Reply Post by 凛凛酱 (2014-01-23 09:24):
    
    如果是非完全立方数,保留三位小数,难度立马上去了
    
    非完全立方数只能从首位开始硬算,计算量和存储量大多了,当然也不能排除会有些妖怪级的人物。
    

    
    
    

上一篇:绝对好停车。
下一篇:没有了
关于网站 | 网站声明 | 用户反馈 | 合作伙伴 | 联系我们
Copyright 2012年2月8日 苏ICP备12030052号-3