2248
需用时 04:29
《最强大脑》上周玮的3道数学题,应该怎么算?

周玮在《最强大脑》上速算的3道数学题,换成是你这样的普通人,要怎么算才能更快一点呢?图片来源:《最强大脑》

被诊断为学者症候群的周玮,在《最强大脑》上速算了3道复杂的数学题,一时间成为焦点。有人惊叹,有人怀疑,感兴趣和看热闹的人们都想瞧瞧这里面的究竟。周玮到底是用什么方法算出结果的?是靠死记硬背还是靠独特的大脑?这个问题,恐怕只有他本人才能够确定了。(心理学家和脑科学家对他的解析,参见《Dr. 魏深度解秘,周玮的“最强大脑”!》)

本文想说明的是,普通人没有功能非同一般的大脑,不能自创别人看不懂的数学方法,其实也可以借助已经得到公认的数学方法和自己的努力,完成很复杂的计算。(编辑注:本文包含大量指数格式,在手机客户端无法正常显示,请多多见谅。)

周玮速算的3道题。

最简单的题最需要心算能力

首先我们来看第一道题:

613 =?

这道题看起来最简单,但恰恰是3道题中最需要心算能力的。乘方的速算可以有很多不同的方法,最笨蛋的就是直接心算。

直接心算这个方法很笨拙,先计算 62得到36,再计算 6= 36×6 = 216,接着计算 6= 216×6 = 1296,以此类推,直到计算出613为止。虽然笨,却直观。它更适合位数较少的幂计算,并且在幂底为个位数的时候,不断心算乘法对记忆存储数据要求较小。当幂底超过个位数时,这个方法就不太合适了。

因此,我们来介绍一个简单易上手的计算方法。

首先第一步,把 613 拆开计算

613 = ( (63)2)2×6

63是个口算级别的题,对数字敏感的人可以脱口而出216。于是题目接下来变为
(2162)2×6 =?

计算 2162 比计算 63 要稍微难一些,但也还算简单,利用 (a+b)=a2+2ab+b2 可以把这个计算简化。

216= (200+16)×(200+16) = 40000+3200×2+256 = 46656

接下来是最困难的一步,是计算 466562,进入五位数乘法的范畴,如果完全不靠纸笔记录,那需要你具有一定的数字记忆与存储能力。

首先还是利用公式进行拆分,拆分的原则是拆分出的有效位数尽可能接近,比如把 46656 拆分成 4×104+6656 就不太合适,更好的拆分方式是 46×102+656。这样在之后的计算中会略微容易一些。

46656= (46000+656)×(46000+656) = 462×1000000+656×46×2×1000+6562

这步也很直接,这里分别展示一下每个部分的速算方式

46= (45+1)×(45+1) = 452+90+1

注意,(10x+5)2有一个非常好用的速算公式,我们把这个式子拆开看一下:

(10x+5)= x2×102+10x×5×2+5= (x2+x)×102+5= 100x(x+1)+25

记住这个公式,对速算很有帮助,之后我们也会反复利用这个公式来进行计算。

45= 4×(4+1)×100+25 = 2025

462= 2025+91 = 2116

第二部分的速算方法,是不断地在计算过程中拆出 10 的幂次数,具体过程如下(这并不是唯一的方法,也许你有更熟悉的方法来加快计算):
656×46×2 = 656×92 = 656×(100-10+2) = 65600-6560+1312 = 60000-960+1312 = 60000+312+40 = 60352

最后计算6562,同样利用刚刚介绍的公式:
656= (650+6)= 6502+650×6×2+36 = (6×(6+1)×100+25)×100+1300×6+36 = 422500+7800+36 = 430336

得到这几部分的值之后,继续计算加法就可以得到:
46656= 2116000000+60352000+430336 = 2176782336

最后一步没什么很特别的方法,还是直接心算比较方便:
2176782336×6 = 13060694016

看起来过程很多很繁琐对不对,但是其实当中的奥义只有两条:

  1. 反复对复杂的数字进行以0结尾或者以5结尾的拆分;
  2. 利用各类公式来简化计算。

虽然方法好掌握,但你现在可能还达不到一下子就算出来 613 是多少的地步。利用这些方法,轻松计算出 65、66、67 问题不大。经过一段时间的训练,不说达到周玮的速度,超过大多数人的笔算速度与准确度并非难事。

需要注意的是,速算方法并没有最优一说,挑选自己记得住的与擅长的计算方式,才是最好的。

上述方法是计算精确值的,如果只是估计个大概,那又会简单得多。

lg(6) = lg(2)+lg(3) = 0.301+0.477 = 0.778

lg(6)×13 =  0.778×13  =10.1

计算1010.1约等于1010 = 10000000000

这个误差为 30%,不过数量级上是准确的。如果需要更加准确的估算,则是计算 1010.1 = 1010×100.1,假如你恰好记得 100.1 = 1.26 ,那最后的估算值就是 12600000000。误差一下子缩小为 3.5%,已经算比较准确的估算了。

如果你对对数不太熟悉的话,还有另一种估算法。首先,我们把 63近似为 200,然后重复上面的步骤:

(63)2=4 0000

((63)2)2=16 0000 0000

6×((63)2)2=96 0000 0000≈100 0000 0000

在需要计算数量级的时候,这个精度是够的。

在进行这种大数计算的时候,可以使用科学计数法的e代替末尾的一系列0。比如,最后一行可以读成 96e8≈1e10。事实上,这可以看作是对对数的一种应用,但是在脑子里计算的时候会简单很多。

如果对这个精度无法接受或想要确认误差的话,可以从误差来源判断:主要的误差来源于把 216 近似成 200 的时候带来了 +8% 的误差,然后这个 +8% 的误差被平方了两次,所以误差变成了 8%×4 = 32%。因此进行误差修正后,就会得到 1.32×1010 的结果。你大可以对最后一步,把 96 近似成 100 带来的 4% 误差,也纳入考虑,那样就会得到 1.28×1010 的结果。无论是哪种结果,和准确值的实际误差都是 2% 左右。

看似吓人的开高次方,其实没有那么可怕

再来看第二道题:

实际上,对于一个普通人,不使用计算器的情况下,完全以手动方式求一个很大数字开n次方根,并不需要高深的数学,只需要依靠加减乘除和一些简单的对数计算法则就可以。

依然以周玮的这道题为例,首先

1391237759766345数字太大,不妨近似一下:

根据 10<13.9<24,可以估算出lg(13.9)介于1到1.2之间。

所以 13.9 的 14 次方根的对数值,应该是比0.1小一些(实际上是在0.07-0.08左右)。于是, 的对数,就应该比1.1小一些。

如果利用之前写过的 100.1≈1.26,可以得到 < 101.1 ≈ 12.6。准确的值肯定小于这个数字。

另外一种做法是通过试乘法计算。由于这个题目给的数据范围,我们几乎一定可以把答案的范围限制在 10-13 左右。所以如果只需要一位精度,那么我们可以试着去估算 1.1,1.2,1.3 这三个数的 14 次方,并和给定值进行比较。如果需要更高位精度的话,这种做法就略显无力了。

至于节目中第3道题,也是类似。

首先将整个算式转化成对数,首先提出一个10,把式子变成:

这时需要估算lg(3.2),即:
lg(3.2) = lg(32*0.1)=lg(32)+lg0.1=lg(2^5)+(-1) = lg(2)×5-1

于是,上面的这个式子就变为:
lg(2)×7+(lg(2)×5-1)/13+1 = 0.3010×7+(0.3010×5-1)/13+1 = 3.147

最后计算103.147 = 1000×100.147。后面这部分可以粗略估算为0.147是lg(2)的一半,所以最后的结果是 ,再乘以1000等于1400左右。

没有计算器,没有对数表,也没有超强的大脑,只要对于精确度要求不是很苛刻,徒手计算出一个巨大数字的次方根完全可能。并且,这样的方法不止一种。即便如此,想要快速报出答案,一些必要的练习还是免不了的。只可惜,现代数学研究几乎不需要这种速算能力了。

心算能力在现在这个设备与技术齐全的时代来说,更为主要的用处是对构造出的公式进行初步的估算和简单的合理性验证。如果需要更高的精度,使用计算机更简单。

最后讲一个小故事

两列火车相隔 200 公里,各以每小时 50 千米的速度相向而行。一只苍蝇从其中一列前端出发,以每小时 75 千米的速度,在两列车之间来来回回飞个不停,问:直到两车相撞,苍蝇飞过的总距离是多少?

这当然是一道级数求和的题。但它有另一个巧妙的解答:既然两车相隔200千米,每小时各行驶 50 千米,它们要过 2 小时才相撞。所以,苍蝇飞了2小时,因此它必定飞了150千米。你看,换个方法,万事大吉。

传说在一次晚宴上,一个年轻人碰到冯·诺依曼,也问了他这道题。冯·诺依曼沉吟几秒后回答:“哦,当然是150千米。”年轻人被小小震了一下,心想冯老师果然大牛,于是拍起了马屁。“啊,冯老师果然高明,一下就想到了时间乘以苍蝇速度的方法。”冯·诺依曼答道:“什么?我求了级数之和。”

 

相关的果壳网小组

The End

发布于2014-01-22, 本文版权属于果壳网(guokr.com),禁止转载。如有需要,请联系果壳

举报这篇文章

antares

数学硕士,本格推理爱好者

pic