问题一:50个瓶子的故事
一个青年走进了一家便利店买了,爽快地购买了50瓶饮料,并且跟老板扬言说他可以一口气全部喝完。老板听了笑了觉得起来,因为这实在是太不可思议了,并且跟青年保证可以用三个空的瓶子换得一瓶新的饮料继续喝。青年微微一笑,随手拿起了一瓶并且一口气喝下了第一瓶,然后用神情的眼眸望向老板,问到:“呵呵,老板,你猜一下,我最后总共可以喝到多少瓶饮料呢?”而此刻的你,就是那个双眼中充满了疑惑的老板……
threebodies:三种思考方式
思路一:一遍又一遍地计算!
老板想,这个年轻人可能会采用这样的策略来喝饮料:首先把50瓶饮料全部喝掉,这样就可以得到50个空瓶子,然后用50个空瓶子来和自己进行交换,可以换得16瓶新的饮料,并且还剩下了2个原有的空瓶。接下来再把16瓶新装的饮料喝完,这样就得到了18个空瓶子,那么就可以继续和自己进行交换了。然后可以用全部的18个瓶子换得6瓶新饮料,并且再喝掉。再用6个空瓶子换得2瓶饮料继续喝掉,那么就会剩下2个空瓶,也就没办法再继续换下去了,所以最后的结果应该是74瓶!
在α世界线中的你,也就是老板就是这样子想的,他得出的结果是74瓶。可惜的是,青年技高一筹,他向你伸出手说:“老板,可以不可以借一瓶给我,这样我喝完之后就有3个空瓶了,还给了就相当于一瓶新的饮料,你也不亏啊。”你想了想,觉得倒也合情合理,于是答应了。所以最终的结果是,青年一共喝了75瓶饮料。
思路二:找出递推公式!
老板是个函数式语言程序员,他发现了要计算这样的过程的结果,可以利用递归!他假设了有一个函数叫做F,这个函数接受一个正整数作为参数,并且可以计算出这个正整数所对应的总共可以额外获得的饮料的数量。如果用50作为参数,那么就是在计算这个青年所提出的问题了。那么怎么递归呢?从一个特殊的情况考虑就是50瓶拿出3瓶来喝掉,并且换得一瓶新饮料,那么也就是说现在得到了一瓶新饮料,并且还剩下48瓶,所以关系应该是:F(50)=1+F(48),以此类推,F(48)=1+F(46),F(46)=1+F(44)等等。那么递推公式就是
F(n)=1+F(n-2)。
而最终的基础情形是n为1(当一开始的n为奇数时)或者n为2(当一开始的n为偶数时),它们对应的值分别为0和1(因为对于下降到n为2的情况,可以和老板借一瓶来凑数),所以如果一开始的参数为50,那么最后的计算结果将是F(50)=24+F(2),即25。那么将可以额外获得的25瓶加上原来的50瓶,青年总共可以喝到75瓶饮料。这一次,β世界线中的你终于得到了正确的答案。
思路三:列方程!
老板是个数学家,他首先意识到了青年可能会向自己借饮料,于是他开始列方程了:假设青年向自己借了x瓶饮料,那么他必须在喝完所有的饮料之后偿还这x瓶,为了能够正好喝完所有饮料而又不需要多还空瓶或者多买几瓶,那么他所借的饮料的数量应该满足这个方程
50+x=3x。
解方程,得到结果为75。在γ世界线中,老板几乎在听到了青年的问题后的瞬间回答了这个问题,青年先是吃了一惊,然后发出了爽朗的笑声……
问题二:圆与弦的故事
很久之前在学校里面的一家书店里面买了一本书,连我自己也觉得不可思议的是,这本书既不是轻小说也不是计算机类的书,它的名字叫做《悖论简史》,副标题还很唬人,叫做“哲学和心灵的迷宫”。这本书里面提到了很多有趣的故事,其中一个是由约瑟夫·路易斯·伯特兰在1889年提出的一个问题:在一个圆内任意拉一条弦,这条弦的长度比圆的内接等边三角形的边长还要长的概率是多少?这个问题在维基百科上也有收录,叫伯特兰悖论。
至于这个问题的三种解答方法,我就不一一赘述了,反正我也不觉得自己能够把故事再用青年人和老板来重演一遍,各位读者就自己看维基百科上面的说明好了。不过我觉得这个题目很有意思,非常的有意思。首先它和问题一一样,可以从三个不同的角度来进行解答,问题在于,问题一的三个答案在同样的前提下是一样的(即允许青年向老板借一瓶饮料,而实际上即使不能借,前两个思路算出来的结果也是正确的),可是对于伯特兰悖论而言,三种方法算出来的结果截然不同!不过现实和数学毕竟是不一样的,答案终究只有一个,这个是用实践就可以证明的。
后记
从不同的角度看待不同的问题,除了会得到不同的解法之外,不同的解法甚至还可能得出不同的答案,但是这样的答案尽管互相之间是矛盾的,却无法从推理过程中看出问题,不得不承认,数学有时候真的是一种很神奇的东西,尽管不少时候我都会觉得,数学就是符号和规则的游戏,只是碰巧现实世界的模型和数学所使用的模型一致罢了。算了,我对数学的理解也不深刻,就不继续民科下去了。总之,以后多尝试从不同的角度看问题,或许真的会有不同的收获。啊,怎么感觉这文章虎头蛇尾的?!