五场数模之经历

五场数模之经历

September 14, 2026·
Cao Xuan
Cao Xuan
· 2 min read
jottings

第一次数模是高中被数学竞赛的同学拉去打美赛。那一周正值期中考后一周,刚考出历史新低的我甚至错过了选题,昏头昏脑地就开始备赛。在有趣的蜂蜜种群分析和无聊的二氧化碳浓度预测中,我们队选择了后者。那时候什么都不懂,见是预测题,就派了一个同学在 B 站上死磕四万行的 transformer(彼时为 2022 年),一个同学在 matlab 上阅读求资源求来的 ARIMA,我还坚持直接用英语写论文因为我不喜欢翻译。最后成绩平平。

到了大一春夏,五一期间闲逛看到了数模校赛。彼时刚认识一位计算机高手,于是便拉上高中同学一起打比赛。选择数模,一是因为相对于其他比赛来说周期最短,比较轻松;二是因为毕竟是数学竞赛出身,有点迷之自信。由于数模,2025 年 5 月,我第一次用上了 github copilot 的自动补全。同学第一次向我展示用一句话生成一个贪吃蛇游戏的时候,我深为震撼。校赛的周期有十天,是一个和无人机轨迹规划有关的问题。首个周末,我们聚在小剧场的二楼,在草稿纸上画各种各样的图,用直觉想各种各样的策略。工作日,我们分头负责代码实现,并在下一个周末再聚起来推进到底。我记得为了让 github copilot 理解我们复杂的几何逻辑算法,并且画出想要的示意图,我们不得不用非常详细且没有歧义的语言向它描述算法的每个流程。我记得我想画出一个类似 voronoi 图的东西,但 copilot 总是有几率把错误的边加粗,于是我只能反复运行,直到抽出一张可以放在论文里的图。

写论文的时候,没有查阅任何模板,就凭自己的问题的理解组织了整篇文章。我们把所有想到的思路都写了上去,它们就像树根一样往各个方向生长,虽然没有特别突出的。后来成绩不错,于是就有了些自信。

国赛前夕,有学长想和我组队,于是我就和原队友分开,推荐了一个新同学代替我的位置,我和云辩的学长姐组队比赛。这回是 2025 年 9 月。比赛前我特意申请了 copilot 学生认证,不知为何额度还是很少,这为这次比赛的蹉跎埋下了伏笔。没有了 copilot,当时的我只会用对话版的腾讯元宝。比赛初,乃至比赛的第二天,我和学姐都执着于用纯几何方法判定烟雾弹是否能遮挡导弹这个立体几何问题。一路上想到了空间解析几何,想到了工图学的三视图,不过最后没用,还是回归搜索。元宝写的代码非常拉,几乎都是错的,还是学长的 copilot 指出的错误。当时我代码代码写不出,建模建模想不出,病急乱投医甚至找了不知道什么平台,花了 20 块钱买了 50 次高级模型的对话机会。对,甚至是按对话次数计费的,所以我每次都写一个超级长的 prompt。那个时候还在手写 python,被学长嘲笑毫无代码功底。我心想大二要好好练一练 coding 能力了。

国赛期间一直在焦虑能不能做完五个问题,焦虑的时候就疯狂刷小红书,对答案。因为题目有歧义,还被小红书横生一番焦虑。跨校区组队提供了酒店,学长姐坐在凳子上,我则一直跪在床边,把膝盖都跪红了。不过那个时候还是很有人类参与的,草稿纸写了一张又一张。不幸地是,最后写论文的时候太急,只剩最后两个小时才开始写摘要,而 latex 的联合编译因为子文件和 main.tex 使用的库不同导致编译错误。最后半个小时,我和学姐焦急地在旁边看学长操作,把问题五的解合并到总论文中。最后,在 19:59 我们上交了论文,网卡,20:00 才交上,没有拿到 MD5 码。

忙活了三天,论文竟然没交成功。学长立马给谈老师打了电话,结果是没办法。坐在酒店的玻璃窗边,没有很难过,反而很平静。后来大家去吃了一顿日料。拆队的另两个同学也遭遇了挫折,于是和其中一个同学夜晚在东操一圈一圈地走,约定明年要一雪前耻。那天一直到凌晨两点都没睡,后面还有表演赛的事,也无暇悲伤。

到了寒假的美赛,已是 2026 年 1 月。gemini 的学生优惠正值末班车,而新推出的 gemini 3 pro 势头正猛。整个大二秋冬一直忙于社团的事情,直到寒假我才第一次用上外国 AI。当时在 98 看了一些 gem 的攻略,其实就是 skill,然后开始美赛。队友的家长有事不在家,于是同学只能把他二年级的妹妹带到学校来。我们一天到晚待在研讨室,妹妹也只能一天到晚待在研讨室,可妹妹才二年级,坐不住。所以,支线任务是哄妹妹玩。上午的时候让她写自己的寒假数学作业,中午带她看新三国的鬼畜,还有我的世界、植物大战僵尸。晚上,队友还要开车送妹妹回家住,所以备赛的氛围一直颇为 chill。

chill 的底气是 gemini 3 pro 确实厉害。我们建模的基础全部来自 gemini 的 deep research 功能,找了几篇有趣的论文,把几个公式拼凑在一起。写作的时候,先在 overleaf 上生成中文,然后再逐行翻译成英文。彼时,我还执着于先生成大纲,然后再扩展到全文,不过有了 AI 的帮助,生成大纲已经容易多了。当时电池的数据集很难找,还在 B 站上参考了数学建模老哥的资料。印象里那个时候没有写什么很复杂的代码,处理出来的效果虽差但也够用,所以虽然一直是对话框交流,但也足够应付代码了。那时在研讨室的白板上,我们还写了不少思路,列了不少公式,但最后的总结和整合工作主要是 AI 做的。最后一个晚上,有点紧迫,我首次因为正事通宵就是这回,通宵把论文赶出来。因为在同一个对话框里翻译了太长的文字,还把 gemini 3 pro 的额度用完了。最后几个小时,因为 latex 模板的引用格式出错,我们还排查了许久。那是我第一次在本地成功编译 latex,算是了解了国赛的一大心结。不枉我通宵到早上七点。

不过 latex 联合编译很慢,并且内容和图片比较多,最后的版本差强人意。最终的结果还不错,但没有特别满意。赛后,我们夜晚在银泉周围骑车,问要不要参加国赛。既然我们都有点遗憾,那就再参加一年国赛吧。

在大二春夏,coding agent 的发展实在是太快了。学期初刚进组的时候,用的还是 glm 5,写实验报告用的还是网页版 gemini 3 pro 的复制粘贴。到了夏学期,实验报告已经升级为 codex 端到端作业,glm 也从 5 升级成了 5.1、5.2。5.1 刚出来的时候,我还夸过它比 5 聪明,现在却是觉得 5.2 都不够用了。我们几个人向来懒得做赛前准备,一直以赛代练。赛前我们就在想,今年会出什么题目呢,会不会像校赛那样出一些要手动收集数据的问题,或者一些新奇的问题。在比赛前一天,gpt 6 astra 解决了 NS 方程的一个版本,这更让我们又自信又迷茫。

拿到题目的第一个晚上,我们还在研讨室的白板上画了不少图进行分析。由于十点钟教学楼关门,简单讨论后我们决定分别让 gpt 5.6 sol、gpt 6 astra 和 glm 5.3 跑一个版本,其中 glm 5.3 是端到端的,前两者有一些人类干预。从第二天看到 AI 的解法开始,那块白板就再没被用过。不得不说 AI 端到端的效果实在惊人。但问题也不小:我们看不懂,以及它生成的论文不说人话。

所以接下来的几天,我们先尝试继续优化问题三和问题四,与此同时开始沉下心来仔细阅读 AI 的思路。不得不说,AI 的思路非常复杂,有一种 dfs 的美,但是很难被高层次地概括和精简,以及它的用词实在太雷霆了。我们几乎花了一个下午和一个晚上才读懂两篇 AI 对问题的解法。有趣的是,glm 5.3 的表现比 gpt 6 astra 还要好,我们说中国人出的题还得是中国人的模型做。

从某种程度上来说,这一次国赛是压力最小的一次,因为大部分时间都花在等 AI、鼓起勇气理解 AI 的非人话,和看 KPL 上。但当 AI 思考时间特别长,或者一直不说人话的时候,就会有一种异样的焦虑。这种感觉就像是轻松燃尽,似乎什么都没做,但是很累而且没有正反馈,也没有耐心看完 AI 的非人话。

为了把 AI 生成的思路说成人话,我们采取了以下有趣的策略。第一,当然是尽可能读懂并概括。对于简单的问题,我可以完全理解,所以我可以完全从头组织结构和逻辑推进的顺序。但对于策略很复杂的问题,我怎么读都只能一知半解。这时,我选择先生成大纲,也就是只包含论证思路的人话版。本来想的是大纲要纯人写,但最后写了两问,还是交给 AI 生成再手动修改。第二,调整修辞。我明确 ban 掉下述词语:“探针”,“骨干”,“作业”,“证书”,这根本不是中文好吧。第三,用一种间接的方式,调整详略和连贯性。这一步是最磨人的。我一方面没法自己上手编辑,另一方面每次提出要求之后它都想很久,等 AI 的时候又没有事情可做,所以非常牢。尤其是最后时间有点来不及了,更是非常易怒,非常焦虑,非常累。这一次连图片也没有自己画,我们的可视化大师也选择全部使用 codex 生图。唉。

所以本次比赛有一个很奇特的现象。每天晚上十点钟教学楼关门后,我们也没有继续讨论到很晚。有一天晚上我心情很不好,队友陪我一起去吃正新鸡排。还有一天是狼队 vs TTG 的决赛,看了巅峰对决的直播。这样看来这一次是压力最小的一次,强大的 AI 也确实成为我们坚信能做完的底气。不过,这一次的体验也是最差的,因为这一次完全是 AI 牵着我们的鼻子走。没有思考的乐趣,没有进入心流的状态。理解 AI 的东西到最后也是一知半解,也没有锻炼什么能力,或许唯一锻炼的能力是耐心和说人话。怎么会有代码一开始就写好但是理解了整整两天的呢。我们也不是没有尝试思考,但也想不过 AI,而且理解 AI 和说人话实在折磨人。最后交代码前,发现所有代码文件夹的命名里都含 glm_ 和 gpt6_,于是紧急改代码,令人忍俊不禁。

我不禁联想到暑假的 HPC 短学期,也是实验太难大家只能高强度使用 AI。有这样的机会逼你去使用 AI 固然是一件好事,需要在这样的场景中去锻炼使用 AI 的技巧,突破不想为 AI 花钱的心态。可然后呢?HPC 榜单上比别人多一两百分的人,或许只是比别人多开了一个端到端的终端。程序结果的优劣,乃至竞赛成绩的好坏,已然难以成为判断水平高下的理由,甚至难以成为一个持久的动力。辛辛苦苦花这么多时间把分刷高了,又有什么意义呢。

在这样的环境下,到底怎样才算自己真正懂了呢?我反反复复看了 HPC 的课程 slides 和实验报告的 tutorial,但到头来也还是一知半解,动手只能靠 coding agent。当取得实验效果不能用来证明自己真的懂了的时候,或许唯一的方法就是写文章来总结,或者讲给别人听。但这很难,也很慢。

无论怎么说,经过这一次国赛,我感觉学东西的目的还是为了自己的兴趣,而不是为了达到某个效果,做出某个成果。疲于理解 AI 生成的结果并不能让人快乐,同理漫天飞的具身智能论文也有点这种感觉。还是自己一步一步慢慢理解,壁垒比较高的东西比较有意思。所以 OpenAI 破解这个千禧年问题、破解那个数学难题,或者有一些完全不懂数学的人拿自己的 token 去做一些很难的数学问题,做出来了又如何?你自己又不懂,也没有办法确认它是对的。不过看到这样的事件的时候还是免不了焦虑。

同期,有辩论队的面试和表演赛,有音乐会。但我却困在这里对着 agent 思考的图标发呆,焦虑地玩手机,没有任何主观能动性。不过数模也是有好处的,和好朋友在一起吃了好多好多顿饭。和人类的合作很愉快,和 AI 的合作不愉快。

大学阶段的数模已经打完了,未来也再也不想打了。不过作为某种程度上长期研究的 miniature,数模告诉我,我讨厌自己不能完全理解或者完全掌控的东西。

Cao Xuan
Authors
Undergraduate

Hi, I’m Cao Xuan, an undergraduate student studying Control Science and Engineering at Zhejiang University.

My main interest is efficient AI systems. I want to build algorithms that are not only effective in theory, but also hardware-aware, computationally efficient, and grounded in solid mathematical principles.

I am especially interested in the interaction between machine learning, optimization, probability, information theory, numerical computation, and modern hardware. Rather than treating algorithms and systems as separate layers, I hope to understand how hardware constraints can shape algorithm design, and how mathematical structure can lead to more efficient implementations.

Ultimately, I want to develop practical algorithms that combine theoretical insight with systems efficiency to solve meaningful problems in the real world.