趣题:老鼠与毒药问题的推广

    今天的趣题来源于 IBM Ponder This 三月份的谜题

    大家应该都听说过这个老题目:有 1000 个一模一样的瓶子,其中有 999 瓶是普通的水,有一瓶是毒药。任何喝下毒药的生物都会在一星期之后死亡。现在,你只有 10 只小白鼠和一星期的时间,如何检验出哪个瓶子里有毒药?

    这个问题的答案也堪称经典:把瓶子从 0 到 999 依次编号,然后全部转换为 10 位二进制数。让第一只老鼠喝掉所有二进制数右起第一位是 1 的瓶子,让第二只老鼠喝掉所有二进制数右起第二位是 1 的瓶子,等等。一星期后,如果第一只老鼠死了,就知道毒药瓶子的二进制编号中,右起第一位是 1 ;如果第二只老鼠没死,就知道毒药瓶子的二进制编号中,右起第二位是 0 ⋯⋯每只老鼠的死活都能确定出 10 位二进制数的其中一位,由此便可知道毒药瓶子的编号了。

    现在,有意思的问题来了:如果你有两个星期的时间(换句话说你可以做两轮实验),为了从 1000 个瓶子中找出毒药,你最少需要几只老鼠?注意,在第一轮实验中死掉的老鼠,就无法继续参与第二次实验了。

Read more…

幸福结局问题,以及一个幸福的结局

    今天是我第一次听说这个故事。

    1933 年,匈牙利数学家 George Szekeres 还只有 22 岁。那时,他常常和朋友们在匈牙利的首都布达佩斯讨论数学。这群人里面还有同样生于匈牙利的数学怪才——Paul Erdős 大神。不过当时,Erdős 只有 20 岁。

    在一次数学聚会上,一位叫做 Esther Klein 的美女同学提出了这么一个结论:在平面上随便画五个点(其中任意三点不共线),那么一定有四个点,它们构成一个凸四边形。Szekeres 和 Erdős 等人想了好一会儿,没想到该怎么证明。于是,美女同学得意地宣布了她的证明:这五个点的凸包(覆盖整个点集的最小凸多边形)只可能是五边形、四边形和三角形。前两种情况都已经不用再讨论了,而对于第三种情况,把三角形内的两个点连成一条直线,则三角形的三个顶点中一定有两个顶点在这条直线的同一侧,这四个点便构成了一个凸四边形。

    

Read more…

趣题:不动点与线性代数

    假设 X 、 Y 是两个有限集合,f:X→Y 和 g:Y→X 是两个函数。求证:复合函数 g∘f 和 f∘g 拥有相同数量的不动点(也就是说 g(f(x)) = x 和 f(g(y)) = y 的解的个数相同)。

    下面先提供一个“正常”的解法。观察函数 g∘f 的不动点,可以看出它有以下两个性质:首先,如果某个 x 是 g∘f 的不动点,即 x = g(f(x)) ,那么 f(x) = f(g(f(x))),这就说明 f(x) 是 f∘g 的一个不动点;另外,如果 x1 和 x2 是 X 中两个不同的不动点,则函数 f 不可能把它们映射到 Y 中的同一个元素,否则 g 没办法把它分别还原成 x1 和 x2 。结合上面两点可以看出, f∘g 中的不动点至少和 g∘f 的一样多。

    同理,考察 f∘g 的不动点,可知 g∘f 的不动点至少和 f∘g 的一样多。这就说明了 g∘f 和 f∘g 拥有相同数量的不动点。

Read more…

UyHiP趣题:如果每个人都随大流,结果会怎样?

    一个公司里有 n 个员工,其中某些员工之间有“好友”的关系(这是一个对称的关系)。每天早晨来到公司,员工们都会从茶和咖啡中选择一样作为早饮。此时,每个员工都会观察自己的朋友们都在喝啥:如果超过一半的人都在喝茶,第二天他自己也会跟着喝茶;如果超过一半的人都在喝咖啡,第二天他自己就会跟着喝咖啡;如果喝茶喝咖啡的人数各占一半(仅当他有偶数个朋友时才会发生这种情况),则第二天他的决策不变,继续喝自己今天喝的东西。
    由于 n 个员工一共只能产生 2n 种不同的早饮组合,因此总有一天大家喝的东西会和过去的某一天一模一样,从而产生循环。证明:循环的长度不超过 2 。

Read more…