Advent of Code 2025:人类 vs AI
Source: Dev.to
我在做什么
每天我会用以下三种语言解答 Advent of Code 的谜题:
- JavaScript
- Rust
- Python
随后,我会让一组当前的 AI 编码模型用同样的三种语言各自给出解答:
- GPT‑5.1 Codex
- Gemini 3 Pro
- Composer‑1
- Opus‑4.5
- Sonnet‑4.5
因此,每个谜题将会有:
- 我的人工解答(每种语言各一份)
- 五个 AI 的解答(每种语言各一份)
这本质上是一次编码“对决”,但并非竞争。真正的目标是探索不同推理方式在代码中的体现,模型之间的实现差异,以及我的思路与它们的比较。
方法论
这不是实验室级别的研究,只是一个一致、轻量的工作流,以保持比较的公平性。
-
手动解决完问题后,我把挑战文本放入
prompts文件夹中的.txt文件,文件开头加上简短的提示:You are a developer taking on the Advent of Code Challenge 2025. Create a solution for this problem. This puzzle has two parts, solve both in the same solution. The program output should just be the two answers on separate lines. -
我在每天保持这个提示不变,只在必要时调整输出格式。
-
然后把输入文件放入
inputs文件夹。在 Cursor 中选择待测试的模型、@‑文件、提示以及目标目录,点击 Run。不使用 MCP、MAX 模式或其他可能引入混杂变量的选项,以尽量减少上下文膨胀。 -
我运行一个 Python 脚本来验证输出并审阅模型的“思考过程”。
为什么要做这个实验?
了解 AI 实际是如何解题的
Advent of Code 的谜题是理想的测试平台:规模足够小、可以自包含(且不会消耗太多 token/£),但又足够巧妙,需要真正的推理和创造力。观察不同模型如何拆解这些问题已经非常有趣,分析最终结果可能会带来有价值的洞见。
提升自己的流畅度
用三种不同语言各解一次同一谜题,迫使我更深入地思考模式、算法和语言惯用法。这是保持技能锋利、探索平时不常用语言的绝佳方式。
观察风格和结构的差异
- 当模型选择暴力求解时,我更倾向于规划和分析。
- 我专注于解决问题,不会过多考虑失败情况(代码只在已知输入、已知环境下运行)。AI 可能更防御性,写出更通用的代码。
- 模型可能会使用外部包,而我常常只使用语言特性和标准库。
这些对比能够反映出“AI 思维”在代码中的表现方式。
构建人类 + AI 方法的数据集
到 AoC 结束时,即使今年只有 12 题,我也会拥有数十个跨语言、跨模型的解答——足够进行分析!该集合包含同一问题的多种答案,从不同角度出发,本身就是一个有价值的资源。
我将分享的内容
在本月期间,我会发布以下方面的洞见:
- AI 倾向使用的模式
- 输出代码的性能(性能统计也很有趣)
- 常见错误或盲点
- 模型是一次性给出解答还是需要一定的引导
- 模型在何处超越我的直觉或提出更新颖的方案
- 语言特有的怪癖(例如 Rust 的借用检查器 vs. AI)
- 与多个编码模型“配对”的感受
- 其他关于 AI、Cursor 以及模型细微差别的随想
目标不是评出冠军,而是了解 2025 年编码的全景图,找出 AI 的优势、局限以及它们与人类的互补之处。
关注进展
如果你对 Advent of Code、编程语言实验或开发者与 AI 工具之间不断演进的关系感兴趣,欢迎关注。我将在整个月份里持续发布思考与好奇点,最后再对所有挑战进行一次汇总。
祝愿十二月充满谜题、抓头、学习以及一些非常奇怪的调试时刻。
编码愉快,祝 Advent 更加欢乐。 🎅🔥