Advent of Code 2025:人类 vs AI

发布: (2025年12月3日 GMT+8 16:51)
6 min read
原文: Dev.to

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 的解答(每种语言各一份)

这本质上是一次编码“对决”,但并非竞争。真正的目标是探索不同推理方式在代码中的体现,模型之间的实现差异,以及我的思路与它们的比较。

方法论

这不是实验室级别的研究,只是一个一致、轻量的工作流,以保持比较的公平性。

  1. 手动解决完问题后,我把挑战文本放入 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.
  2. 我在每天保持这个提示不变,只在必要时调整输出格式。

  3. 然后把输入文件放入 inputs 文件夹。在 Cursor 中选择待测试的模型、@‑文件、提示以及目标目录,点击 Run。不使用 MCP、MAX 模式或其他可能引入混杂变量的选项,以尽量减少上下文膨胀。

  4. 我运行一个 Python 脚本来验证输出并审阅模型的“思考过程”。

为什么要做这个实验?

了解 AI 实际是如何解题的

Advent of Code 的谜题是理想的测试平台:规模足够小、可以自包含(且不会消耗太多 token/£),但又足够巧妙,需要真正的推理和创造力。观察不同模型如何拆解这些问题已经非常有趣,分析最终结果可能会带来有价值的洞见。

提升自己的流畅度

用三种不同语言各解一次同一谜题,迫使我更深入地思考模式、算法和语言惯用法。这是保持技能锋利、探索平时不常用语言的绝佳方式。

观察风格和结构的差异

  • 当模型选择暴力求解时,我更倾向于规划和分析。
  • 我专注于解决问题,不会过多考虑失败情况(代码只在已知输入、已知环境下运行)。AI 可能更防御性,写出更通用的代码。
  • 模型可能会使用外部包,而我常常只使用语言特性和标准库。

这些对比能够反映出“AI 思维”在代码中的表现方式。

构建人类 + AI 方法的数据集

到 AoC 结束时,即使今年只有 12 题,我也会拥有数十个跨语言、跨模型的解答——足够进行分析!该集合包含同一问题的多种答案,从不同角度出发,本身就是一个有价值的资源。

我将分享的内容

在本月期间,我会发布以下方面的洞见:

  • AI 倾向使用的模式
  • 输出代码的性能(性能统计也很有趣)
  • 常见错误或盲点
  • 模型是一次性给出解答还是需要一定的引导
  • 模型在何处超越我的直觉或提出更新颖的方案
  • 语言特有的怪癖(例如 Rust 的借用检查器 vs. AI)
  • 与多个编码模型“配对”的感受
  • 其他关于 AI、Cursor 以及模型细微差别的随想

目标不是评出冠军,而是了解 2025 年编码的全景图,找出 AI 的优势、局限以及它们与人类的互补之处。

关注进展

如果你对 Advent of Code、编程语言实验或开发者与 AI 工具之间不断演进的关系感兴趣,欢迎关注。我将在整个月份里持续发布思考与好奇点,最后再对所有挑战进行一次汇总。

祝愿十二月充满谜题、抓头、学习以及一些非常奇怪的调试时刻。

编码愉快,祝 Advent 更加欢乐。 🎅🔥

Back to Blog

相关文章

阅读更多 »

Blender 插件开发需要更多 DevOps

概述 编写测试代码并实现自动化。在多个版本的 Blender 上运行测试,以安心发布。个人开发者,无论是已经是还是想成为 d...