【数学相关】 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