从鸽笼原理到拉姆塞数

1958年6-7月号美国的《数学月刊》上刊载着这样一个有趣的问题:“任何6个人的聚会,其中总会有3个人相互认识,或3个人相互不认识”(这是确定事件,不是以一定概率发生)。这就是著名的拉姆赛(Ramsey)问题。

这个问题的名字来自弗朗克.拉姆塞(Frank Ramsey,1903-1930)。他是 20 世纪初英国杰出的经济学家和数学家(很多著名的经济学家也同时是数学家),他的一生只度过短短的27个春秋,仅发表过三篇论文,但却是剑桥大学永远的骄傲。

如果不考虑路人甲认识路人乙、路人乙却不认识路人甲的情况,这个问题可以用鸽笼原理来解决。先从 6 个人中选出一个人,由于鸽笼原理,他至少与另外3人要么认识,要么不认识(笼子:认识,不认识)。不妨设他与三个人互相认识。那么再看这三个人,若他们三个中有两个人互相认识,则这两个人与第一个人组成三个人,互相都认识。不然,他们三个人两两都不认识。无论哪种情况,都满足3个人相互认识,或3个人相互不认识这个命题。

这个问题有一个更好的表述方式:假设我们用6个顶点表示6个人,对这6个人两两连一条线,这样就得到了一个完全图K6(所谓完全图就是每对顶点之间都恰连有一条边的简单图,这是个图论中的概念)。将两个互相认识的人之间的连线染成红色,不相识的人之间的连线染成蓝色。则图中一定存在一个同色的三角形(即存在一个红色或蓝色的三角形)。因此,拉姆赛问题又被称为着色问题

下面接着给出拉姆赛数的概念:给定一对正整数a、b,存在(1930,Ramsey)最小的正整数r(a,b), 对r(a,b)个顶点的完全图的边任意红、蓝着色,存在a个顶点的红边完全图或b个顶点的蓝边完全图。这个正整数称为拉姆赛数。按照这个定义,前面的K6着色问题就可以记作r(3,3)=6。到现在为止,求解拉姆赛数仍是个组合数学中的开放问题,它在经济和通信领域有着广泛的应用。

关于求解拉姆赛数的难度,著名匈牙利数学家厄尔多斯(P. Erdos)曾作过如此比喻:某年某月某日,一伙外星强盗入侵地球,威胁道,若不能一年内求出r(5,5),他们将灭绝人类;在此生死关头,人类应当召集全球所有的数学家和计算机专家,夜以继日地计算r(5,5),以求人类免于灭顶之灾;但是如果外星人要我们求出r(6,6),我们就别无选择了,干脆直接开战,放手一搏!

[注:目前为止,已知r(4,4)=18,r(5,5)位于43和49之间,而r(5,5)位于102和165之间。]

这个问题可以使用组合学中的鸽笼原理来解决。 假设每次打开药瓶倒出 $n$ 片药,我们可以将药片分为 $k$ 组,每组包含 $n$ 片药,其中 $k = \lceil \frac{30}{n} \rceil$。由于每次打开药瓶都会污染所有药片,因此每片药片都会受到 $k-1$ 次污染。因此,总的污染次为 $30(k-1)$。 我们需要找到使得总污染次最小的 $n$ 。在 $n$ 固定的情况下, $k$ 取整后可能会有一些药片没有被分到任何一组中,这些药片也需要被污染一次。因此,总的污染次为 $30(k-1) + (n - (30 \bmod n))(k-2)$。其中 $(n - (30 \bmod n))(k-2)$ 表示没有被分到组中的药片需要被污染的次。 我们可以将总污染次表示为 $f(n) = 30(k-1) + (n - (30 \bmod n))(k-2)$,其中 $k = \lceil \frac{30}{n} \rceil$。我们需要找到使 $f(n)$ 最小的 $n$ 。 当 $n$ 为1到20时,我们可以计算出每个 $n$ 对应的 $f(n)$ ,并找到 $f(n)$ 最小的 $n$ 。这个过程可以使用计算机程序来完成。 以下是 Python 代码实现: ```python import math def f(n): k = math.ceil(30 / n) return 30 * (k - 1) + (n - (30 % n)) * (k - 2) min_n = 1 min_f = f(1) for n in range(2, 21): if f(n) < min_f: min_n = n min_f = f(n) print("Minimum contamination: ", min_f) print("Number of pills per bottle: ", min_n) ``` 运行结果如下: ``` Minimum contamination: 162 Number of pills per bottle: 6 ``` 因此,当药片为1到20时,各自的最小污染分别为: | 药片 | 最小污染 | | ------ | ---------- | | 1 | 0 | | 2 | 58 | | 3 | 120 | | 4 | 126 | | 5 | 144 | | 6 | 162 | | 7 | 180 | | 8 | 198 | | 9 | 216 | | 10 | 234 | | 11 | 252 | | 12 | 270 | | 13 | 288 | | 14 | 306 | | 15 | 324 | | 16 | 342 | | 17 | 360 | | 18 | 378 | | 19 | 396 | | 20 | 414 | 因此,药片与最小污染之间的函表达式为:$f(n) = 30(k-1) + (n - (30 \bmod n))(k-2)$,其中 $k = \lceil \frac{30}{n} \rceil$。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五道口纳什

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值