加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

最强大脑周玮对德国次方哥计算方法解密

(2015-02-15 10:24:48)
标签:

最强大脑

周玮

次方

作弊

娱乐

提高所谓‘心算’(非纯心算)最需要的还是反复的记忆和正确的科学方法。假如你要吃这行饭,就必须付出一定的时间。但这一般比杂技团空中飞人走钢丝简单。但如果不靠这吃饭就别记这劳什子了,因为这东西对数学发展没有任何益处。牛逼的是第一个找出科学计算方法的人,而不是把这套方法反复记忆的人。同样的计算模式,你算再快也没计算机快。现在的计算机还做不到自我演绎和发明新算法。
第一轮:多位数乘法。
多位数乘法的难度核心在于乘数中0和1的个数。通常在计算多位数乘法时我们采用分解因数的方法,可以简化计算。比如说周玮在采访中展示过的321*678的心算技巧:321*678=107*113*3*6。这样分解,可以把原3位数乘3位数转化成含有很多0和1的3位数相乘,然后再和一位数相乘,这样可以大幅提高速度。如果要考验心算者的“硬算”能力,那么应该出含有尽量少的0和1的质数相乘。
Gamm的题目是两个质数571和857相乘,题目中有1个1,一共需要做6次乘法和若干次加法,用时1分18秒。周玮的题目是6901*7789,其中7789是质数,6901可以分解为67*103,对速度的提高有帮助,但并不十分显著。本题有1个1和1个0,需要做8次乘法和若干次加法,其中加法的次数比Gamm多,所以综合来看周玮这题的硬算难度是Gamm那题的2倍不到一些。周玮用时4分24秒,当然,周玮的这道题不一定要硬乘,可以这么算:6901*7789=6900*7789+7789=(7000-100)*7789+7789=7789*7*1000-778900+7789,这样一来这题就只剩4次乘法和若干加减法,反而可能比Gamm那题简单很多。
1.“四位数跟三位数相乘,这不是一个等级的,不是一个量级的,周玮的答案空间大得多,大了近一百倍,算起来非常难。”第一,魏师傅担心观众不知道四比三大?第二,即使周玮的四位数相乘需要做16次乘法,计算量也就是Gamm那题的3倍左右,又是不同“等级”又是不同“量级”,有这么夸张吗?第三,“答案空间大了近一百倍”是什么意思?心算的难度增加是因为计算步骤的数量和难度的增加,而不是结果空间的增大。照魏师傅的意思,100000*100000岂不是答案空间更大?可能魏师傅在暗示两人都是背答案的,因为只有在两人都是背答案的情况下,“答案空间”的大小才直接影响难度。
2.“周玮是四位数乘四位数,这是什么概念呢?就是一亿种可能。”又来“一亿种可能”了,恕我才疏学浅,请北大副教授魏博士解释一下什么叫做“一亿种可能”?6901*7789这个算式与“一亿种可能”有何关系?这是搞数学还是搞忽悠?魏师傅,你这不还是在暗示两人都是背答案的吗?因为周玮要背的“答案空间”更大,所以要强调“一亿种可能”?我难以理解“科学”评审的这两句话,欢迎吧友提出合理解释。
最后,第二轮比赛和第三轮比赛,魏师傅的“答案空间”去哪了?是不是不知道怎么形容第二轮和第三轮比赛的“等级”和“量级”差距了?

第一轮比赛结果结合场外的一次采访可以说明,周玮在多位数乘法上有一些心得,且速度比普通人快一些。

第四轮:自由发挥。
周玮自选的题目是找质数。通常来说我们可以一眼看出某个五位数能否被2,3或5整除,但这个数能否被7以上的质数整除就不那么容易判断了。周玮的范围是1到30000,那么理论上说周玮需要用7以上173以下的质数一个一个去除原数,才能判断那个数是不是质数,大约每判断一个数需要做30多次除法,这个计算量不太大但也不小。当然周玮有可能记住了30000以内的所有质数,但我仍然愿意相信周玮是凭借比较快的除法运算对两个数都进行了判断。应该说周玮表现不错。
Gamm自选的是正弦函数。如很多吧友所说的那样,如果Gamm的1-1000度只能取整数的话,那么实际上只要记住sin1度到sin89度就能解决1-1000度的全部正弦值。当然如果你的三角函数功底足够深厚,记住sin1度到sin15度就行了。每个结果都精确到小数点后9位也就是800个数字左右的记忆量,这大概是不难的,即使Gamm不刻意去记忆,在无数次的心算训练、比赛和表演中也应该很熟悉了。所以国际评审出的sin289度这道题不能有效展示Gamm的强大心算能力。

第二轮:乘方。
我知道有很多吧友认为Gamm完全通过死记硬背解决乘方问题,因为Gamm的速度很快。
我要说的是:第一,心算过程本身就是计算和记忆的结合。只计算而不记忆是不可能的。第二,Gamm在此前无数次的训练、比赛和表演中对部分乘方的结果了然于胸是很正常的,93的17次方这道题的若干中间过程他能直接记住这没什么奇怪的。第三,仔细看节目可以发现他有明显的计算过程。推荐死记硬背论者读一读这个精品贴《德国次方哥 Rüdiger Gamm 介绍贴》http://tieba.baidu.com/p/2861115240,一个完全靠死记硬背骗吃骗喝的人是不可能在国际心算比赛上拿奖的。再说了,周玮两次在舞台上做的所有乘方开方题目加起来数据量都没这个项目大,如果这个题可以死记硬背,那说周玮全是背的丝毫不过分。
还有人问,为什么他只错了一位数?对此我想反问两个问题。1.乘法或加法过程中算错一位很奇怪吗?2.是不是你每次出现计算错误的时候,都是同时错两位以上的?
关于周玮的7的13次方,我想说的是周玮对这类题肯定也很熟悉了。看一下http://v.pptv.com/show/bQ1r6FC2JmTHRYk.html(江苏卫视20140207期开头那个检测视频)的3分58秒处的试卷全景图就能发现(我就不截图了,之前那个贴子里就有这张图),左下倒数第二题就是7的13次方,右边还有7的15,11和14次方,周玮都做对了,可见周玮对7为底的乘方运算还是很有把握的。
本轮比赛Gamm出错而周玮做对,周玮获胜没有疑问。记忆力就是这道题的关键。

第三轮:开方。
这轮比赛周玮犯了个低级错误:忘写10^3了。我就算他写上了吧。
周玮的答案是1.50*10^3,和上次一样是3位有效数字。那么我就再用那个对数方法做一遍这道题。约等号我也写成等号。
第一步:原数S=78*10^14,lgS=lg78+14=lg2+lg3+lg13+14=0.3+0.48+1.11+14=15.89
第二步:15.89/5=3.178
第三步:因为lg1500=2+lg15=3.177,lg1600=2+lg16=3.2,所以要求的答案A在1500到1600之间明显靠近1500的位置。而lg1520=lg80+lg19=1.9+1.28=3.18,所以A大于1500小于1520,且不明显靠近某一边。不妨估一个A=1.51*10^3。
我不希望再看到有人跟我说you can you up或表达类似的意思。
这次我的结论和上次一样:不能证明周玮有任何非凡的开方能力。@尹默YINGYE @get_frustrated 两位同学对我的增加答案有效数字位数的测试方法不屑一顾,不知道现在有没有改变看法?
德国人的题目就有点不同了。如果这题他是完全心算出来的,那么10位有效数字说明他在开方上有真正科学无法解释的“超能力”,可能有固化CPU吧。原因和开方的硬算算法有关,我写在最后。
但是这道题他给的范围是11到99开2,3或4次方,一共就267种出题的可能,扣掉能开净的10种还有257种,每一种可能记10位有效数字,一共就是2570个数字。让王峰同学来记一个小时就搞定了。所以我怀疑这道题德国人的记忆力帮了极大的忙。如果他能表演任意16位数开4次方并给出10位有效数字的正确答案,建议江苏卫视找的某国家重点实验室改去研究Gamm。
关于开方的硬算算法,建议数学成绩比较好的高中生(高考150起码考个120吧)和大学以上的同学去这个链接看:http://hi.baidu.com/osidy/item/653e95344a9158c12f8ec254。这里面的内容写得不是特别容易理解,我有空的时候把这个东西“翻译”一下。其他数学基础不够的同学估计很难看懂,但只要知道这样一个事实就行:这种开方题目的难度取决于开方次数和答案的有效数字位数,都是越大越难。原数的长度与难度无关,它只决定答案的整数部分的长度。虽然对数速算法和硬算算法完全不是一回事,但能理解对数速算法的应该不难明白这点。德国人的题目虽然只有4次方,但算到10位有效数字显然已经超越我能理解的范围了。
至于周玮,如果他还是只能给3位有效数字的话,即使他的能力扩展到1-9999位数开1-99次方也没有意义。

*快速判断7,11,13,101等质因数的方法
2 5当然是看末尾判断

3把各位加起来看能否被3整除

11把奇数位加一起,偶数位加一起,做差看是不是11的整数倍,比如12342,(1+3+2)-(2+4)=0,所以能被11整除

7和13用五位数的后三位减去前两位,看能否被7或13整除,比如89299,299-89=210,所以能被7整除
这一条利用了一个性质7*11*13=1001,把五位数的前两位比如89299的89个1000,每个配上一个1,变成89个1001,只要看提供了89个1之后的剩余部分299-89能否被7或13整除就可以了。

101的判断也就很清楚了,比如59994,就是用前三位减后两位,因为要给599个100配上599个1。

懂得了原理之后,可以对其他质数也做类似处理,简化一下除以几十个质数的过程。
当然,性质这么好的质数不太多了,其他的就算能稍微简化,也不如这几个一目了然。

组合也不是唯一的,我列几个吧:

1)41*61=2501

所以用五位数的前三位除以25,看包含几个25,余数多少。比如29192,显然291包含11个25余16,那么1692-11=1681,是41的倍数,所以能被41整除。

在观察一下,可以更简化,因为10000总是可以被250整除的,所以实际上就是看千百位数包含几个25余多少,比如例题,91显然包含3个25余16,那就看1692-3-2*4=1681.

说它性质不如上面的好,是因为最终还是要化成1个四位数,判断能否被41 61整除,没有类似7 13那样化成3位数看能否被7 13整除简单。

2)17*59=1003

方法是一样的,还是举例子吧,21 771,给21个1000凑上63就变成了21个1003,所以771-21*3=708,是59的倍数,所以能被59整除。

比起1001麻烦了,不能直接用后三位减前两位,而是减去前两位乘以3.
所以类似1007、2509之类的(如果有),实在意义不大了,未必比直接除容易。1003倒是还可以。

3)79*19=1501

比如20 382,就是判断882-13=869,是79的倍数。所以能被79整除。

..........

不多找了。

他们都是需要背的。我就郁闷了乘方和开方算那么快的人为啥两个数相乘算那么慢?你真以为有人比计算机算的快吗?用同样的算法编程计算后,你发现i3 cpu pc计算速度要远远超过超级电脑,还开发个屁。真正的天才不是把别人发明的算法记忆的最好的,而是会不断完善数学体系的人。


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有