又到新的一年,到了写总结的时候。这里,我列出我的2024十大数学“发现”。这里的发现既包括我新“发现”的数学成果,也包括我发现的,他人的有意思成果。更多时候,两者兼而有之,因为数学研究永远是需要站在前人的肩膀上的。
以下就是我的十大“发现”,按我个人的喜好程度从低到高排列。
第十名:忙碌海狸函数BB(5)的值被确定
第五个忙碌海狸函数值,BB(5)被确定了,它就是:
这不是我的发现,它是BBChallenge.org[1]网站成员,集体协作的结果。但该网站参与者之一是看了我的科普文章后,着手研究这个问题的:
着实让人欣慰!
延伸阅读:第5个“忙碌海狸数”的值被确定
第九名:蜂巢填数字谜题的解决
知乎上有人提了这样一个蜂巢填数字谜题[2]:
在如下的六边形网格中,如何填入从1开始的连续数字,使得相邻两格数字之差的最小值尽可能大?
我使用子图搜索方法,找到了4阶下的最佳填写方法,最大值为11:
虽然,后来发现这个问题早已被解决[3],但我的最大收获是了解了一些子图搜索工具:
RI[4],VEQ[5]和Glasgow Subgraph Solver[6]。
延伸阅读:趣题研究:六边形网格的数字填充
第八名:“最难”版本的猜数字游戏
这个猜数字游戏又名bulls and cows。它的基本玩法是这样的:
电脑产生一个秘密的4位数的数字,每一位的取值都是0到9,四个数字互不相同。由玩家猜测这个数字,每一轮中输入一个4位数,电脑会返回玩家输入的数字中有多少数值和位置都猜中,另有多少数字猜中但位置不对。输出格式一般是:xAyB,表示前者有x个数字,后者有y个。
理论上,使用最佳策略,这个游戏至少需要7轮,可以猜出所有数字。
我则开发了一个“最难”版本的猜数字游戏[7]:
基本想法是,电脑并不事先产生确定的数字,而是维护一个可能的答案列表。电脑每次总是选择一个回答,使得可能的答案列表保持最长,所以叫做“最难”版本,请你挑战一下!
第七名:汉字可读方阵
这个问题是受高德纳(英语:Donald Ervin Knuth,1938年1月10日—)的一篇文章启发,高德纳曾研究过英语中的单词方阵,即一组字母方阵,使得每一行每一列都是合法的单词,比如:
women
olive
mites
event
nests
我就想到,难道没有人对汉字做过同样事情吗?搞一个成语方阵?于是编程尝试了一下,成语方面,没有特别好的结果,目前我觉得比较好的是这组:
缺点在于意思比较重复。三阶的情形,我得到了一个非常有意思的结果:
其中每一行、每一列都是菜名,而且没有重复!
我在知乎上发出了同样的挑战[8],看到这个回答也很有意思:
金口玉音
玉碑石像
文载不书
明道分店
我在这里继续征集答案,把有意思的汉字方阵发给我。
延伸阅读:九个字六道菜——汉字趣味方阵汇编
第六名:“最难”的无周期王氏砖块拼图
2024年看到了一篇关于王氏砖块(Wang Tiles)的论文,确认了,最小的无周期王氏砖块组合为11块。但论文中,我最感兴趣的是这段文字:
意思就是有一组10块的王氏砖块,其最大可以拼出212×212的正方形,但拼不出更大的矩形了。我想:这不就是“最难”的拼图吗?于是找了些资料和软件,找出了这10块砖块的形状:
并且尝试拼出了一个20×20的正方形:
余下的挑战就是看有谁能拼出212×212的正方形了!
延伸阅读:无周期王氏砖块问题介绍 ,无周期王氏砖块文章中的一个更正
第五名:互质合数等差数列
知乎上看到一个问题[9]:
是否存在任意长的等差数列,其中每一项都是合数,且两两互质。
研究了一下,成功证明以上问题的答案是肯定的。那么一个有意思的问题是:符合以上条件的等差数列中,当公差为1,2,3,...,长度为3时,首项最小的数列是什么样的?答案是:
[25, 26, 27]
[91, 93, 95]
[49, 52, 55]
[77, 81, 85]
[39, 44, 49]
[203, 209, 215]
[25, 32, 39]
[49, 57, 65]
[77, 86, 95]
[123, 133, 143]
[27, 38, 49]
[121, 133, 145]
[9, 22, 35]
[115, 129, 143]
[91, 106, 121]
[33, 49, 65]
[15, 32, 49]
[125, 143, 161]
[25, 44, 63]
另一个问题是,符合以上条件的等差数列中,当公差为3,首项最小的,长度为3,4,5,6...的数列是什么?这个问题比之前的要难很多。我目前找到的一个比较小的,长度为4的数列是:
[7375, 7378, 7381, 7384]
可以继续研究的是,有没有快捷算法计算上述问题?这些数字的大小有无渐进规律?
第四名:新型心形曲线
同样来自知乎问题[10]:
平面中A,B,C三定点,使得∠ADB-∠BDC为定值的D点轨迹是什么?
直接按题目字面意思,可以写出方程如下:
有意思的点在于,当我把两个角的差值定为π/4,我得到了一条漂亮的心形曲线:
后来我还发现,这条心形曲线可以用如下非常简洁的方程表示:
所以说,美的的东西必有简单的表达!
延伸阅读:一条疑似新型的心形曲线,疑似新型心形曲线的后续
第三名:我提交了一条OEIS序列
还是知乎上看到的问题[11]:
这个问题看似简单,但最终答案出乎意料的复杂。这里借用知乎另一位答主回答的截图:
这个问题也让我研究了好一阵,并且使我能够提交了第一条OEIS序列[12]:
非常有收获!
第二名:汉字拉丁方阵
今年我写了篇关于正交拉丁方的科普文章。我忽然想到,能否构造汉字的拉丁方阵呢?要求是方阵中,每行每列的汉字都由相同的偏旁部首组成,但每个字又不相同。
我在知乎上提出这个挑战后[13],得到了非常热烈的响应。有编程高手给出了如下的结果:
由此,我也可以构造出汉字数独:
可以继续研究,至少需要几个汉字,可以使以上数独有唯一解。
延伸阅读:汉字数独:汉字与拉丁方的奇妙组合
第一名:4玩家非传递骰子
考虑这样一个问题:有3个玩家,玩掷骰子游戏。是否存在一组骰子,使得任意两个玩家各自挑选一个骰子后,剩下的一个玩家总还能找到一个骰子,其投掷点数大于另两名玩家的骰子的概率都大于50%?也就是,最后选骰子才有优势。
答案是存在的。1986年,荷兰的Oskar van Deventer构造出了这样一组7个骰子:
那么对4玩家,是否存在这样一组类似骰子,使得最后选的人有优势呢?长期以来,这还是开放问题,只知道最少需要19颗这样的骰子。维基百科上至今还把它列为未解决:
2024年底,我看到Nicholas Georgescu的这个github repo[14],他找到了一组21颗骰子,可以达成以上目标。
我研究了他的工作,扩展了一下,找到19颗骰子组成的,4玩家非传递骰子。结果放在了这里[15]。
我把结果交给Georgescu验证了一下[16],他确认了我的结果的正确性:
并且把代码简化到3行:
w = (1, 4, 5, 6, 7, 9, 11, 16, 17)
n = len(w)*2+1
d = list(zip(*sorted([[(i+j*k)%n+i*n*len(w)+w.index(j)*n for k in range(n)] for i in range(n) for j in w])))
而且,我的代码具有可扩展性,其也可以生成5玩家骰子(需要至少67颗)。关于这个问题,我不久后还会录个视频科普下。这无疑是我2024年(也延伸到了2025年初)的最大发现!
延伸阅读:一组4玩家的非传递骰子
总结
以上就是我的2024年,十大数学“发现”,希望你也能从中发现一些有意思的东西。可以看到,其中有一些看上去很不“正经”的研究,比如汉字方阵,但我却认为非常好玩。而且让我意外的是,居然到现在都没什么人研究汉字方阵,其实这是推广汉字文化的好题材。
让我们多点幽默感,祝大家蛇年大吉!
BBChallenge.org: https://bbchallenge.org/8156951
[2]蜂巢填数字谜题: https://www.zhihu.com/question/683403503/answer/15700860878
[3]被解决: https://oeis.org/A240438
[4]RI: https://github.com/InfOmics/RI
[5]VEQ: https://github.com/SNUCSE-CTA/VEQ_S
[6]Glasgow Subgraph Solver: https://github.com/ciaranm/glasgow-subgraph-solver
[7]“最难”版本的猜数字游戏: https://youhuali.github.io/lazy_bulls_and_cows/html_version/bnc.html
[8]同样的挑战: https://www.zhihu.com/question/4438697390/answer/34052036280
[9]知乎上看到一个问题: https://www.zhihu.com/question/660741772/answer/56348110137
[10]同样来自知乎问题: https://www.zhihu.com/question/645621290/answer/3408342914
[11]还是知乎上看到的问题: https://www.zhihu.com/question/1391385958
[12]第一条OEIS序列: https://oeis.org/A377280
[13]知乎上提出这个挑战后: https://www.zhihu.com/question/649069727/answer/3440686119
[14]github repo: https://github.com/NGeorgescu/math_problems/blob/main/intransitive.ipynb
[15]这里: https://github.com/YouhuaLi/Intransitive_dice
[16]验证了一下: https://github.com/NGeorgescu/math_problems/issues/1