
1. 倒计时5天先把“AI使用说明”这件事聊透距离华为杯研究生数学建模竞赛开赛还有5天这个时间点其实特别微妙。选题方向基本定了队友分工也聊得差不多了代码框架可能搭了个雏形论文模板也找好了——但真正让人心里没底的往往是那些“看起来不重要、用起来要命”的环节。比如AI工具到底该怎么用用到什么程度算合规代码注释率怎么统计GitLab仓库的代码量怎么算这些问题在赛前不搞清楚赛中很容易踩坑。我参加过两届华为杯也帮学弟学妹做过几次赛前辅导。说实话每年到了倒计时一周大家问得最多的不是“这道题怎么做”而是“AI能不能用、怎么用、用了会不会出问题”。尤其是2025年之后AI辅助编程工具普及得很快很多队伍已经在日常训练里习惯了用AI补全代码、生成注释、甚至辅助推导公式。但竞赛场景和日常练习不一样它有明确的规则边界、有提交规范、有查重机制。你平时怎么用没人管但比赛那几天每一步操作都可能影响最终成绩。这篇内容就是围绕“华为杯倒计时5天”这个节点把AI使用说明、辅助编程工具选型、代码注释与仓库统计、以及赛前最后几天的实操准备一次性讲清楚。不管你是第一次参赛的新手还是已经打过一两届的老手只要你的队伍打算在比赛中借助AI工具提升效率下面这些细节都值得花时间过一遍。2. 赛前5天AI辅助编程工具到底该怎么选2.1 先明确一个前提竞赛规则允许什么华为杯研究生数学建模竞赛的官方规则里对AI工具的使用并没有一刀切禁止但有一条核心原则你提交的成果必须是你自己理解并能够解释的。换句话说AI可以帮你写代码、改注释、查语法但你不能把AI生成的东西原封不动贴上去自己都说不清楚逻辑。这一点在答辩环节尤其重要——评委问到你某个模块的实现思路你如果支支吾吾说不出来那问题就大了。所以选工具的第一个原则不是“哪个最强”而是“哪个能让我保持对代码的掌控力”。我见过有队伍用AI生成了整套数据预处理流程结果赛中调试时发现某个参数不对想改都不知道从哪下手最后只能推倒重来。这种教训每年都有。2.2 不同模型在数学建模场景下的实际表现现在市面上辅助编程的模型不少但真正适合数学建模竞赛场景的需要满足几个条件对Python生态熟悉、能理解数学公式转代码、支持长上下文、响应速度稳定。我按自己的使用体验和身边队伍反馈整理了一个对比模型/工具数学公式转代码Python库熟悉度长上下文支持适合场景GPT系列较强很熟较好算法框架搭建、公式推导辅助Claude系列强很熟强长代码文件理解、注释生成Gemini系列中等较熟很强多模态数据处理、图表解读国内主流模型中等偏上较熟中等中文注释、文档生成注意这里说的“适合”是相对概念不是绝对排名。实际比赛中建议至少准备两个工具互为备份防止某个服务临时不可用。我个人的习惯是用Claude读长代码文件、生成结构化注释用GPT做算法思路的快速验证国内模型用来写中文论文段落和注释。这样分工的好处是每个工具干自己最擅长的事效率最高。2.3 token计划与模型选择的关系很多队伍在赛前会买token包或者订阅计划但买多少、怎么分配其实有讲究。数学建模竞赛的代码量通常不会特别大——一个完整的求解流程核心代码可能就几百到一千多行加上数据处理和绘图总共两三千行算多的。但AI交互的次数可能很多因为你要反复调试、反复问。我的经验是按交互次数估算不按代码行数估算。一场比赛下来一个队伍如果重度使用AI辅助大概会产生200到500次有效交互。每次交互的平均token消耗取决于你贴多少代码、问多复杂的问题。如果只是问“这段代码什么意思”消耗很低如果贴整个文件让AI重构消耗就高。所以选模型的时候不要只看单价要看单位token能解决的问题复杂度。有些模型便宜但需要反复追问综合成本反而高有些模型贵一点但一次就能给出可用答案省时间。比赛那几天时间比token值钱。3. 代码注释率与GitLab仓库统计的实操细节3.1 为什么竞赛要关注注释率华为杯的评审虽然不会直接给注释率打分但注释质量会间接影响论文的可读性和代码的可维护性。更重要的是很多队伍在赛后需要提交代码附件如果代码里一行注释都没有评委看起来会很吃力印象分自然低。而且注释率也是你自己复盘时的重要参考——过两个月再看自己的代码没有注释基本等于天书。那注释率多少合适我的建议是核心算法模块注释率不低于20%数据处理和绘图模块不低于10%。不是让你每行都写注释而是关键步骤、参数含义、函数入口出口要写清楚。AI工具在这方面能帮大忙但要注意AI生成的注释有时候是“废话注释”比如i 1 # i加1这种注释不如不写。3.2 用GitLab统计代码量和注释率的实际操作如果你的队伍用GitLab管理代码仓库可以利用它的API或者CI功能来统计代码量和注释率。具体操作步骤如下第一步确认仓库结构比赛期间建议按功能分目录比如project/ ├── data_preprocess/ ├── models/ ├── solvers/ ├── visualization/ ├── utils/ └── main.py这样统计的时候可以分模块看哪些模块注释不足一目了然。第二步用脚本统计注释率Python有一个轻量工具叫radon可以统计代码复杂度但注释率需要自己写脚本。下面是一个简单的统计脚本示例import os def count_lines(filepath): with open(filepath, r, encodingutf-8) as f: lines f.readlines() total len(lines) comment 0 blank 0 for line in lines: stripped line.strip() if stripped.startswith(#): comment 1 elif stripped : blank 1 code total - comment - blank return total, comment, blank, code def scan_directory(root_dir): stats {} for dirpath, _, filenames in os.walk(root_dir): for fn in filenames: if fn.endswith(.py): fp os.path.join(dirpath, fn) total, comment, blank, code count_lines(fp) stats[fp] { total: total, comment: comment, blank: blank, code: code, comment_rate: comment / code if code 0 else 0 } return stats if __name__ __main__: result scan_directory(./project) for fp, s in result.items(): print(f{fp}: 代码{s[code]}行, 注释{s[comment]}行, 注释率{s[comment_rate]:.1%})这个脚本跑一遍你就能看到每个文件的注释率。低于10%的文件赛前最后几天可以集中补一下。第三步GitLab CI自动统计可选如果你们队伍熟悉GitLab CI可以配一个简单的job每次push自动跑统计脚本把结果输出到artifact里。这样不用手动跑随时能看到最新数据。配置大概长这样stages: - stats code_stats: stage: stats script: - python scripts/count_comments.py stats.txt artifacts: paths: - stats.txt提示比赛期间不建议花太多时间折腾CI配置如果赛前已经配好了就用没配好就手动跑脚本别因小失大。3.3 代码量统计的常见误区很多人统计代码量的时候喜欢算总行数包括空行和注释。但真正有参考意义的是有效代码行数。GitLab自带的统计功能有时候会把空行也算进去导致数据虚高。我的建议是以有效代码行数为准注释率单独算。这样你在论文里写“本队伍共完成有效代码约1500行核心模块注释率25%”听起来就比“总共3000行”专业得多。另外不要为了凑代码量写冗余代码。评委看的是质量不是行数。我见过有队伍把一行能写完的逻辑拆成十行注释倒是多了但代码质量反而下降。4. 倒计时5天的AI辅助编程实操流程4.1 赛前最后几天该做什么准备倒计时5天不是让你从头学AI工具而是把已经会用的工具流程化、模板化。具体来说做三件事第一建一个提示词模板库。把常用的AI交互场景写成模板比如“请帮我检查这段代码的边界条件”、“请为以下函数生成docstring”、“请解释这段报错信息”。比赛时直接套模板省去组织语言的时间。第二准备代码片段库。数学建模常用的代码片段比如数据读取、缺失值处理、常用优化算法调用、绘图模板提前整理好。AI可以帮你生成这些片段但你要自己验证一遍确保能跑通。第三测试AI工具的稳定性。比赛那几天网络、服务可用性都是变量。提前测试你打算用的工具看看响应速度、并发限制、是否有额度限制。如果某个工具在高峰期经常超时趁早换备用方案。4.2 赛中AI辅助编程的标准操作流程比赛开始后AI辅助编程建议按这个流程走先自己想清楚逻辑再让AI写代码。不要一上来就问“这道题怎么做”而是先自己拆解问题形成伪代码然后让AI把伪代码转成Python。AI生成的代码必须逐行理解。看不懂的地方追问直到能用自己的话解释清楚。关键模块人工复核。涉及数值计算、边界条件、循环终止条件的代码AI容易出错必须人工检查。注释同步生成。每完成一个模块让AI生成注释然后自己修改润色确保注释准确。定期提交GitLab。每完成一个可运行的版本就commit一次commit message写清楚改了什么方便回滚。注意比赛期间不要频繁切换AI工具。选定一两个主力工具用熟用透比换来换去效率高。4.3 一个真实的代码注释优化案例去年带的一个队伍赛中第三天发现数据预处理模块的注释率只有5%代码逻辑复杂队友之间互相看不懂。他们用了一个下午做注释优化具体做法是先把所有函数按功能分组每个函数让AI生成一版注释人工检查注释是否准确删掉废话注释对核心算法函数补充参数说明和返回值说明在模块开头加一段整体说明解释这个模块的输入输出和处理逻辑优化后注释率提升到22%队友之间的沟通效率明显提高后面调试bug也快了很多。这个案例说明注释不是写给评委看的首先是写给队友看的。5. 常见问题与排查技巧实录5.1 AI生成的代码跑不通怎么办这是最常见的问题。AI生成的代码有时候看起来没问题但一跑就报错。排查思路如下问题类型典型表现排查方法库版本不匹配某个函数不存在或参数不对检查库版本查官方文档数据类型错误报TypeError或ValueError打印中间变量类型边界条件遗漏空数组、除零、越界加断言和异常处理逻辑错误结果不对但不报错用小规模数据手动验证性能问题跑得太慢或内存溢出检查循环和数据结构我的经验是AI生成的代码先在小数据上跑通再上全量数据。不要一上来就跑完整数据集出了问题很难定位。5.2 注释率统计结果和预期不符有时候你觉得自己写了很多注释但统计出来注释率很低。原因可能是注释写在了代码行末尾脚本没识别到需要改脚本识别#在行中的情况多行字符串被当成代码而不是注释空行被算进了代码行解决办法统一注释风格注释单独占一行不要写在代码后面。这样统计准确阅读也清晰。5.3 AI工具突然不可用比赛期间最怕这个。预防措施至少准备两个不同厂商的AI工具关键代码和提示词本地备份如果AI完全不可用回归手动编程不要慌我遇到过比赛第二天某个工具服务中断的情况那支队伍因为提前准备了备用方案切换后只耽误了十几分钟。所以不要把鸡蛋放在一个篮子里。5.4 队友之间AI使用风格不统一有的队友喜欢让AI写大段代码有的喜欢自己写让AI检查。风格不统一会导致代码质量参差不齐。建议赛前就约定好统一用哪个工具统一注释风格统一代码提交规范每天固定时间同步进度这些看起来是小事但赛中能省很多沟通成本。6. 最后几天把精力放在能控制的事情上倒计时5天说长不长说短不短。我的建议是不要再纠结选题方向不要再尝试学新工具把精力放在流程梳理和细节打磨上。AI使用说明也好代码注释统计也好GitLab仓库管理也好这些都是你能控制的事情。把能控制的做好比赛时心态会稳很多。我个人的体会是华为杯这种级别的竞赛最后拉开差距的往往不是谁用了更高级的模型而是谁的基本功更扎实、谁的流程更顺畅、谁的代码更可读。AI是工具不是替代品。你用AI省下来的时间应该花在理解问题、验证结果、打磨论文上而不是花在跟AI较劲上。最后分享一个小技巧比赛前一天把AI工具的提示词模板、代码片段库、统计脚本全部整理到一个文件夹里命名清楚比赛时直接打开就能用。这个习惯我坚持了两届每次都能省下至少半小时的找文件时间。别小看这半小时比赛第一天的时间特别宝贵。