我的数学退化
Hacker News 摘要原标题:My Mathematical Regression
作者 Alex Dahl 最近翻到了自己十年前的一个代码仓库,里面存放的是 Project Euler 数学竞赛题的解法。仓库里几乎全是 Python 文件,但其中一个名为 problem15.txt 的文本文件引起了他的注意。
现在的解题方式
作者回想,如果现在的他在工作中遇到这个问题,他首先会想到使用 Python。他可能会先尝试朴素的暴力破解法,写一堆嵌套循环。如果这种方法算不出来,他会进一步使用记忆化搜索或者动态规划。
不过这只是他的心理活动。作者坦言,在实际工作中,他大概率会直接把问题交给 AI 处理,然后继续忙别的。
十年前的解题方式
然而,那份 problem15.txt 文件显示,身为工程系学生的他当年甚至没有写任何代码就解决了问题。他在文件里记录了以下规律:
• 1x1 的网格有 2 条路径。
• 2x2 的网格有 6 条路径。
• 3x3 的网格有 20 条路径。
他发现这些数字遵循 (2n) 取 n 的数学模式。对于题目要求的 20x20 网格,计算方法就是 (2乘以20) 取 20,即 40 取 20。最终得出的答案是 137,846,528,820。
作者的反思
现在的作者对过去的自己感到由衷的敬佩,同时也感到有些失落。他觉得这种感觉就像阅读阿西莫夫的小说:故事的主角发现了由“古代先知”编纂并传承下来的古老知识,而这些知识其实只是他多年前在学校时的积累。
他把这种状态称为“数学上的退化”。为了排解这种情绪,他甚至还专门修改了一张图片来调侃这种今昔对比。