财新传媒
位置:博客 > 万战勇 > 学数学很无聊?不学你死定了!

学数学很无聊?不学你死定了!

今天小女儿和我有这样一段对话:
 
女儿:爸爸,我要你和妈妈生偶数个孩子!
我:这个......你已经有哥哥和姐姐了,要是我们再生个妹妹,哥哥一个人会感到很孤单的。
女儿:那你们就生六个!
我:?!¥%&*
 
如果我是一名普通青年或者文学青年,可能在朋友圈发一番童言多可爱、时间都去哪儿了、人到中年万事难、理想的家庭结构是N男娃N女娃之类的感慨就算了。但是,谁叫咱是工程师呢,较真模式马上自动打开!几秒钟后我的思路就跳转到了这么一道数学题:
 
一对夫妇已经有了两个女儿一个儿子,如果想要达到儿女平衡,那么平均来说还得生几个孩子?
 
既然是数学题,不是生物实验,我们就要做一些理想的假设:
  1. 每次生孩子都是独立的随机事件,生男和生女的概率都是各50%,和以前的历史没有关系。
  2. 每次只生一个。也就是说,不考虑双胞胎、三胞胎、......N胞胎的情况。
  3. 每次生完孩子,如果男孩总数等于女孩总数,就算大功告成,算法返回。否则继续。
  4. 所谓“平均来说还要生几个孩子”,准确地说是需要再生的孩子数目的数学期望值。
好了,你是不是已经跃跃欲试了?(喂,不是说生孩子,是做这道数学题!)
 
如果我们假设在当前女孩比男孩多k个的情况下(k >= 0),平均来说需要再生W[k]个娃才能达到男女平衡,那么这道题就是要求W[1]是多少。我们先用最简单的情况练练手:如果女孩男孩已经一样多了(k = 0),那么好,一个也不用再生了。也就是说
 
    W[0] = 0
 
如果女孩比男孩多一个(k = 1)呢?我们知道,下一个生男生女的概率是一半一半。如果生的是个男孩,OK!恭喜你平衡了!如果生的是个女孩,那女孩数就比男孩多2了,所以在这刚生的一个女孩之外,平均还得再生W[2]个孩子才行。两种情况合起来看,平均得再生 (1 + 1 + W[2])/2 = 1 + W[2]/2 个孩子。也就是说
 
    W[1] = 1 + W[2]/2     (公式1)
 
嗯?我们想知道的是W[1],怎么W[2]跑出来了,这不是越整越复杂了吗?
 
不要急,科学不是一蹴而就的,娃要一个一个地生,公式也要一步一步地推不是。一时算不出W[1]没关系,我们来把W[k]和它的邻居的关系搞清楚了先:假定k > 0,如果下一个生的是男,那么男女差距缩小到了k - 1,平均来说再生W[k-1]个就好;如果下一个生的是女,男女差距扩大到了k + 1,那么还得再生W[k + 1]个。没错吧?
 
这个关系很重要,请务必保证你理解了。如果还没有,回去重读初中。(啊?!你也太狠了吧?)哦,没功夫啊?那就回去把上一段看三遍!那就回去把上一段看三遍!那就回去把上一段看三遍!
 
现在我们来把这段话总结成公式:
 
    W[k] = (1 + W[k-1] + 1 + W[k+1])/2   (对所有k > 0)
 
然后化简成:
 
    W[k] = 1 + (W[k-1] + W[k+1])/2    (对所有k > 0)     (公式2)
 
把这个公式带入公式1,我们得到:
 
     W[1]
  = 1 + W[2]/2
  = 1 + (1 + (W[1] + W[3])/2)/2
  = 3/2 + (W[1] + W[3])/4
 
也就是说
 
      W[1] = 2 + W[3]/3      (公式3)
 
元芳,你怎么看?包大人,把公式3和公式1放在一起看!
 
咦,好像是有规律耶!貌似
 
     W[1] = k - 1 + W[k]/k  (对所有 k >= 1)     (公式4)
 
或者换一个角度:
 
     W[k] = kW[1] + k - k^2  (对所有k >= 1)      (公式4’)
 
真的是这样吗?用数学归纳法试试看这个“哥得抱弟”猜想成不成立:
  1. 当k = 1,W[1] = 1 - 1 + W[1]/1,公式成立。
  2. 当k = 2,W[1] = 1 + W[2]/2,公式也成立。看来有戏!
  3. 假设k <= n (n >= 2)的时候公式都成立。那么:
     W[1]
  = n - 1 + W[n]/n           (归纳假设)
  = n - 1 + (1 + (W[n-1] + W[n+1])/2)/n       (套用公式2)
  = n - 1 + 1/n + W[n-1]/2n + W[n+1]/2n
  = n - 1 + 1/n + ((n - 1)W[1] + n - 1 - (n - 1)^2)/2n + W[n+1]/2n    (套用公式4’)
 
现在我们得到了W[1]和W[n+1]的关系,把上式化简,可以得到
 
     W[1] = n + W[n+1]/(n + 1)
 
也就是说,公式4对k = n + 1也是成立的!欧耶,数学归纳法告诉我们,公式4对一切自然数k都成立。
 
这说明一个什么问题?这说明一个非常严重的问题:因为我们知道W[k]总是>= 0的,W[1] = k - 1 + W[k]/k (对所有k >- 1)意味着W[1]的值根本就是没边的,要多大有多大。换句话说:W[1]根本就是无穷大!
 
无!穷!大!
 
在生娃的问题上,如果抱着“生着看,啥时扯平啥时停”的态度,你死定了!
 
那些在旁边叫着“生吧!生吧!”的看客,你们真是太坑爹鸟!
 
幸好,我们有数学归纳法。



推荐 45