文科背景的朋友们经常会问我一个问题:数学到底哪里有趣了,数学之美又在哪里?此时,我通常会讲一些简单而又深刻的算术游戏,让每个只会算术的人都能或多或少地体会到一些数学的美妙。如果你从小就被数学考试折磨,对数学一点好感都没有,那么我相信这一节内容会改变你的态度。
01
数字黑洞
任意选一个四位数(数字不能全相同),把所有数字从大到小排列,再把所有数字从小到大排列,用前者减去后者得到一个新的数。重复对新得到的数进行上述操作,7步以内必然会得到6174。如果某一步计算的结果不足四位,那就在它前面添加0,把它补成四位,再进行操作。例如,选择四位数8080:
……
6174这个“黑洞”就叫做卡布列克(Kaprekar)常数。对于三位数,也有一个数字黑洞,即495。
02
特殊乘法的速算
如果两个两位数的十位数相同,个位数相加为10,那么你可以立即说出这两个数的乘积。如果把这两个数分别写作和,那么它们的乘积的前两位就是和
的乘积,后两位就是和的乘积。比如,47和43的十位数相同,个位数之和为10,因而它们乘积的前两位就是
,后两位就是
。也就是说,
。类似地,
,
,
,等等。这个速算方法背后的原因是,
对任意和都成立。
03
翻倍,再翻倍!
将123 456 789翻倍,你会发现结果仍然是这9个数字的一个排列:
我们再次将246913578翻倍,发现:
结果依旧使用了每个数字各一次。这仅仅是一个巧合吗?我们继续翻倍:
神奇啊,一个很有特点的数987 654 312,显然每个数字又只用了一次。
你或许会想,这下到头了吧,再翻倍就成10位数了。不过,请看:
又使用了每个数字各一次,只不过这一次加上了数字0。再来?
恐怖了,又是每个数字各出现一次。
出现了这么多巧合之后我们开始怀疑,这并不是什么巧合,一定有什么简单的方法可以解释这种现象的。
但是,下面的事实让这个问题更加复杂了。到了第6次后,虽然仍然是10位数,但偏偏就在这时发生了意外:
看来,寻找一个合理的解释,并不是一件轻而易举的事情。
04
唯一的解
经典数字谜题:用1到9组成一个九位数,使得这个数的第一位能被1整除,前两位组成的两位数能被2整除,前三位组成的三位数能被3整除,以此类推,一直到整个九位数能被9整除。
没错,真的有这样猛的数:381 654 729。其中3能被1整除,38能被2整除,381能被3整除,一直到整个数能被9整除。这个数既可以用整除的性质一步步推出来,也可以利用计算机编程找到。
另一个有趣的事实是,在所有由1到9所组成的362 880个不同的九位数中, 381 654 729是唯一一个满足要求的数!
05
幻方之幻
一个“三阶幻方”是指把数字1到9填入
的方格,使得每一行、每一列以及两条对角线的3个数之和正好都相同。图1就是一个三阶幻方,每条直线上的3个数之和都等于15。
图 1
大家或许都听说过幻方这东西,但是并不知道幻方中的一些美妙的性质。例如,任意一个三阶幻方都满足,各行所组成的三位数的平方和,等于各行逆序所组成的三位数的平方和。对于上图中的三阶幻方,就有
利用线性代数,我们可以证明这个结论。
06
天然形成的幻方
从到这18个分数的小数循环节长度都是18。像图2那样把这18个循环节排成一个
的数字阵,这将恰好构成一个幻方——每一行、每一列和两条对角线上的数字之和都是81。
图 2
07
一个小魔术
在一张纸上并排画11个小方格,叫你的好朋友背对着你(让你看不到他在纸上写什么),在前两个方格中随便填两个1到10之间的数。从第3个方格开始,在每个方格里填入前两个方格里的数之和。让你的朋友一直算出第10个方格里的数。假如你的朋友一开始填入方格的数是7和3,那么前10个方格里的数分别是:
7 | 3 | 10 | 13 | 23 | 36 | 59 | 95 | 154 | 249 |
现在,叫你的朋友报出第10个方格里的数,稍作计算你便能猜出第11个方格里的数应该是多少。你的朋友会非常惊奇地发现,把第11个方格里的数计算出来,所得的结果与你的预测一模一样!
其实,仅凭借第10个数来推测第11个数的方法非常简单,你需要做的仅仅是把第10个数乘以1.618,得到的乘积就是第11个数了。在上面的例子中,由于
,因此你可以胸有成竹地断定,第11个数就是403。而事实上,154与249相加真的就等于403。
其实,不管最初两个数是什么,按照这种方式加下去,相邻两数之比总会越来越趋近于1.618——这个数正是传说中的“黄金分割”。
08
3个神奇的分数
化成小数后等于0.0204081632…,把小数点后的数字两位两位断开,前五个数依次是2、4、8、16、32,每个数正好都是前一个数的两倍。
等于0.01010203050813213455…,两位两位断开后,得到的正好是著名的斐波那契(Fibonacci)数列1, 1, 2, 3, 5, 8, 13, 21, … ,数列中的每一个项都是它前面两个项之和。而
则等于0.0102030405060708091011121314151617181920212223…。
利用组合数学中的“生成函数”可以完美地解释这些现象产生的原因。