返回列表

9th place write-up

675. NeurIPS 2025 - Google Code Golf Championship | google-code-golf-2025

开始: 2025-07-31 结束: 2025-10-30 数学与计算 数据算法赛
第 9 名解题报告 - Google Code Golf 2025

第 9 名解题报告

从手动代码到金牌,一次一个字节。

作者: 4eta (团队:4eta, sash, yu_w, Ueddy, Kazuo Watanabe)

发布日期: 2025-11-01

竞赛排名: 第 9 名

竞赛: Google Code Golf 2025

致谢

我们衷心感谢组织者举办了这场非凡的比赛,感谢参赛队伍分享知识,也感谢更广泛的代码高尔夫社区对技术和见解的开放贡献。
我们特别感谢 lynn、@kayjoking@garrymoss 的杰出贡献,他们的作品在整个比赛过程中极大地启发和影响了我们的工作。

概述

我们的团队由五名通过竞技编程相识的成员组成。我们手动实现并优化了本次竞赛中的每一个任务。
虽然我们之前都没有代码高尔夫的经验,但我们在三个月内投入了超过 1000 个小时,随着我们完善方法并加深理解,我们不断从 AI 工具和更广泛的代码高尔夫社区中学习。

解决方案 / 可复现性

我们的最终提交代码可在以下 GitHub 仓库中找到:

https://github.com/4eta/google-code-golf-2025

每个单独的解决方案都可以在 src/task 目录下找到。

方法

整体方法

我们的大部分代码都是手动编写和完善的。与排名靠前的团队不同,我们几乎没有代码高尔夫的经验。在为期三个月的比赛中,我们通过学习 ChatGPT、Gemini 和 Claude 等 AI 工具,以及现有代码高尔夫社区分享的丰富知识,不断改进我们的解决方案。

我们的时间线和重点演变如下:

  • 8 月: 专注于解决所有 400 个任务,不优先考虑代码长度。
  • 9 月: 研究简短的公开最佳解决方案,学习核心代码高尔夫技巧。
  • 10 月: 应用我们学到的一切,不知疲倦地将每个解决方案减少哪怕一个字节。

我们相信集体的奉献精神——三个月内超过 1000 个小时——是我们获得金牌表现的关键。

手动优化过程

我们使用自定义仪表板(见下文)管理进度,跟踪所有问题和提交记录。

自定义仪表板截图 1 自定义仪表板截图 2

该仪表板允许我们根据多个视角优先处理任务,例如:

  • 公开最佳解决方案比我们短得多的问题。
  • 我们的提交与公开最佳解决方案之间存在较大分数差距的任务。
  • 团队内最近更新或很少更新的问题。
  • 在特定任务上被排名较低的团队超越的情况。

通过根据最新更新时间对问题进行排序,我们鼓励了一种我们称为“追逐”的过程——改进彼此未完成的想法。这种动态的完善周期不仅带来了更好的代码,也在整个比赛过程中培养了强烈的团队意识和动力。

技巧

我们从更广泛的代码高尔夫社区中学到了很多。许多创造性的技巧——如下面的旋转和递归技巧示例——对塑造我们的方法非常有价值:

p=lambda m,k=3:-k*m or p([[y for y in x]for x in zip(*m[::-1])],k-1)

为了收集知识和灵感,我们发现以下资源特别有帮助:

Codingame Code Golf Python https://www.codingame.com/blog/code-golf-python/ Code Golf Wiki - Python https://code.golf/wiki/langs/python Code Golf StackExchange - Python Tips https://codegolf.stackexchange.com/questions/54/tips-for-golfing-in-python Kajott Advent of Code https://github.com/kajott/adventofcode

在编写和完善代码时,我们也 heavily 依赖以下仓库和工具——我们深深感谢它们的创作者。

Google ARC-GEN Tasks https://github.com/google/ARC-GEN/tree/main/tasks/training Lynn Pysearch https://github.com/lynn/pysearch Compressed Variable Name Optimization https://www.kaggle.com/code/garrymoss/compressed-variable-name-optimization Lynn Flateview https://lynn.github.io/flateview/

结论

解题有趣,排名痛苦。

同比赛其他方案