Harvard-MIT Mathematics Tournament 2009: Guts Round

摘录几道题目。

计算1·2^2 + 2·3^2 + 3·4^2 + … + 19·20^2
原式 = (1^3 + 2^3 + … + 20^3) – (1^2 + 2^2 + … + 20^2) = 44100 – 2870 = 41230

求2^x = 3^y – 1的所有正整数解
x=1时(1,1)是一个解;当x>1时,方程模4后左边永远等于0,右边则是(-1)^y – 1,可知y为偶数。令y=2z,那么有2^x = (3^z – 1)(3^z + 1),这就要求3^z-1和3^z+1都是2的幂;但它们只相差2,因此它们只有可能是2和4,于是z=1,即原方程的另一个解为(3,2)。

圆周上有2008个点。选择两个点连成一条线,再选另外两点连一条线,这两条线段相交的概率为多少?
给定四个点,在三种连接方案中恰有一种会发生相交。取遍所有C(2008,4)种组合,相交的总情况数总是占了1/3,因此所求的概率就是1/3。

Read more…

拥有多个A的概率:又一个条件概率悖论

    概率论给我们带来了很多匪夷所思的反常结果,条件概率尤其如此。网络上每一次有人发帖提出与条件概率有关的悖论时,总会引来无数人的围观和争论,哪怕这些问题的实质都是相同的。
    来看两道简单的组合数学问题:

       1. 四个人打桥牌。其中一个人说,我手上有一个A。请问他手上有不止一个A的概率是多少?
       2. 四个人打桥牌。其中一个人说,我手上有一个黑桃A。请问他手上有不止一个A的概率是多少?

    这两个问题看起来很像,实际算法大不相同。在第一题问题中,

       手上一个A也没有 有 C(48,13) 种情况
       手上有至少一个A 有 C(52,13) – C(48,13) 种情况
       手上恰好有一个A 有 C(48,12) * 4 种情况
       手上有至少两个A 有 C(52,13) – C(48,13) – C(48,12) * 4 种情况

    根据条件概率公式,手上有超过一个A的概率为(C(52,13) – C(48,13) – C(48,12) * 4) / (C(52,13) – C(48,13)) = 5359/14498 ≈ 37%

Read more…

《从一到无穷大》选谈:思维的尺度

    这个月月初就开始看《从一到无穷大》,花了接近两个星期才看完。这确实是一本让人放不下手的好书。考虑到我的阅读速度,一个多星期一本书已经近乎神速了。在这本书里我经常会看到一些有趣的数学知识,前段时间我还写过书里提到的一个有趣的东西——环面上的染色问题反而比平面上的“四色问题”更加简单。这种例子并不罕见,很多时候一些扩展版的问题反而比原问题更加简单。在第八章,我看到了另一个好玩的东西:随机游走(random walk)问题。
    随机游走问题是说,假如你每次随机选择一个方向迈出一个单位的长度,那么n次行动之后你离原点平均有多远(即离原点距离的期望值)。有趣的是,这个问题的二维情况反而比一维情况更加简单,关键就是一维情况下的绝对值符号无法打开来。先拿一维情况来说,多数人第一反应肯定是,平均距离应该是0,因为向左走和向右走的几率是一样的。确实,原点两边的情况是对称的,最终坐标的平均值应该是0才对;但我们这里考虑的是距离,它需要加上一个绝对值的符号,期望显然是一个比0大的数。如果我们做p次实验,那么我们要求的平均距离D就应该是

  

    其中d的值随机取1或者-1。这里的绝对值符号是一个打不破的坚冰,它让处于不同绝对值符号内的d值无法互相抵消。但是,当同样的问题扩展到二维时,情况有了很大的改变。我们把每一步的路径投射到X轴和Y轴上,利用勾股定理我们可以求出离原点的距离的平方R^2的值:

  

    一旦把平方展开后,有趣的事情出现了:这些X值和Y值都是有正有负均匀分布的,因此当实验次数p充分大时,除了那几个平方项以外,其它的都抵消了。最后呢,式子就变成了

  

    于是呢,就有平均距离R=sqrt(n) (准确的说是均方根距离)。我们得出,在二维平面内随机选择方向走一个单位的长度,则n步之后离出发点的平均距离为根号n。这是一个很美妙的结论。

Read more…

统计数据、相关性与因果关系

    在去年10月份的数学文化节期间,我去听了好几次讲座,其中有一些讲的相当精彩。时间过得好快,转眼间又是一年了,如果不是Wind牛发短信问我去不去听讲座,我估计今年数学文化节过了都还想不起这档子事。于是和Wind牛跑去二教309,听了一场叫做《从数据中挖掘因果关系》的讲座。这个题目是很有趣的:数据本身并不说谎,难就难在我们如何从中挖掘出正确的信息。当我们讨论数据时,我们讲的最多的是数据的相关性,而我们希望得到的则是事件之间的因果联系;但事实往往是复杂的,统计数据有相关性并不意味着两个事件具有因果联系,而具有因果联系的两件事从统计数据上看有时也并不相关。
    对于前者,最简单的例子就是公鸡打鸣与太阳升起:公鸡打鸣与太阳升起总是同时发生,但这并不表示把全世界所有的公鸡都杀光了后太阳就升不起来了。统计发现,手指头越黄的人,得肺癌的比例越大。但事实上,手指的颜色和得肺癌的几率之间显然没有直接的因果联系。那么为什么统计数据会显示出相关性呢?这是因为手指黄和肺癌都是由吸烟造成的,由此造成了这两者之间产生了虚假的相关性。我们还可以质疑:根据同样的道理,我们又如何能从统计数据中得出吸烟会致癌的结论呢?要想知道吸烟与癌症之间究竟是否有因果联系的话,方法很简单:找一群人随机分成两组,规定一组抽烟一组不抽烟,过它十几年再把这一拨人找回来,数一数看是不是抽烟的那一组人患肺癌的更多一些。这个实验方法本身是无可挑剔的,但它太不道德了,因此我们只能考虑用自然观察法:选择一些本来都不吸烟的健康人进行跟踪观察,然后呢,过段时间这一拨人里总会出现一些失意了堕落了犯上烟瘾的人,于是随着时间的流逝这帮人自然而然地分成了可供统计观察的两组人。注意,这里“是否吸烟”这一变量并不是随机化得来的,它并没有经过人为的干预,而是自然区分出来的。这是一个致命的缺陷!统计结果表明,犯上烟瘾的那些人得肺癌的几率远远高于其他人。这真的能够说明吸烟致癌吗?仔细想想你会发现这当然不能!原因恰似黄手指与肺癌一例:完全有可能是某个第三方变量同时对“爱吸烟”和“患肺癌”产生影响。1957年,Fisher提出了两个备选理论:癌症引起吸烟(烟瘾是癌症早期的一个症状),或者存在某种基因能够同时引起癌症和烟瘾。
    有虚假的相关性数据,就有虚假的独立性数据。“健康工人效应”是一个特别有意思的理论。调查发现,在铀矿工作的工人居然与其它人的寿命一样长(有时甚至更长)。这表明在铀矿工作对身体无害么?当然不是!其实,是因为去铀矿工作的工人都是经过精心挑选的身强体壮的人,他们的寿命本来就该长一些,正是因为去了铀矿工作才把他们的寿命拉低到了平均水平。这一有趣的细节导致了数据的伪独立性。类似地,有数据表明打太极拳的人和不打太极拳的人平均寿命相同。事实上呢,太极拳确实可以强身健体、延长寿命,但打太极拳的人往往是体弱多病的人,这一事实也给统计数据带来了虚假的独立性。

Read more…

停机问题、Chaitin常数与万能证明方法

    高中一次英语课上,英语老师问我们,如果你有机会乘坐时光机回到过去,你想利用这次机会来干啥。“人上一百,形形色色”这句老话得到了完美的验证。什么“回去看看四大美女”呀、“看看金字塔是怎么建造的”呀、“回到三年前的那个风雨交加的夜晚握住她的手深情地告诉她其实我不想让你离开我你知道你走了之后我有多么痛苦吗”之类的东西,各种稀奇古怪的想法都被我们说了个遍。我还记得当时我说的啥——一个无比实用的雕虫小技。我说,我就想回到一个星期前,然后去买彩票。发明一个新东西并不是关键,关键是你怎么去使用它。
    最奇怪的幻想总是来自于最奇怪的需求。大家有过这种经历吗?看到自己写的程序运行了半天都还没有任何结果,于是开始纠结,到底是再等一会儿呢还是强行终止了检查一下看程序写错没;犹豫了半天决定杀掉进程后,检查了半天又发现程序没有写错。于是开始怨念,早知道程序没有死循环的话刚才就多等一会儿了。此时,你会突然开始幻想,有没有什么编译器能够事先告诉你你的程序是否会无限运行下去?虽然编程判断一段代码是否会无限执行下去很可能会相当的困难,但我们仍然不排除会有某个天才程序员想出了一个比三角恋爱更加复杂的算法,花它五年的功夫为他心爱的编译器写出了这样一个强大的插件。为什么不可能呢?这个东西看上去似乎比时光旅行机更现实一些。或许我们会在某个科幻电影中看到,一个程序员在黑黢黢的屏幕上输入了几个数,敲了一下回车,然后屏幕上立即用高亮加粗字体显示“警告:该输入数据会导致程序无限运行下去,确定执行?(Y/N)”。如果有一天,这一切真的成为了现实,那么你能利用这个玩意儿来做些什么实用的、有价值的事情?如果我说你能靠这玩意儿发大财你相信么?

Read more…