杯數(shù)學(xué)建模A題備賽全攻略:機(jī)理建模與優(yōu)化實(shí)戰(zhàn))
2026年華數(shù)杯數(shù)學(xué)建模競(jìng)賽里A題通常被看成整張賽題中最能拉開差距的一道題。它不像部分題目那樣數(shù)據(jù)清洗完就能跑出不錯(cuò)的結(jié)果A題更多要求你對(duì)物理過程、幾何關(guān)系、資源分配或者動(dòng)態(tài)系統(tǒng)本身做機(jī)理建模代碼只是最后一公里。換句話說(shuō)這道題真正考驗(yàn)的是“把實(shí)際問題翻譯成數(shù)學(xué)語(yǔ)言”的能力而不是“誰(shuí)寫的代碼更花哨”。這篇文章不是要給你一份可以直接提交的成品論文而是把從賽題發(fā)布、拆題、建模、寫代碼、跑結(jié)果到成稿提交的完整鏈路拆開講一遍。適合第一次參加華數(shù)杯的本科生也適合跨專業(yè)組隊(duì)、建模基礎(chǔ)偏弱但想沖A題的隊(duì)伍參考。如果你已經(jīng)有幾次國(guó)賽或省賽經(jīng)驗(yàn)可以直接跳到第4章以后重點(diǎn)看代碼落地、論文排版和臨場(chǎng)排查那幾節(jié)。我不打算堆功能清單也不會(huì)用什么“全網(wǎng)天花板”之類的說(shuō)法。真正有用的東西很簡(jiǎn)單知道題目要你算什么知道用什么方法算知道怎么把結(jié)果說(shuō)明白。1. 先把A題當(dāng)“機(jī)理題”看而不是當(dāng)“編程題”看1.1 A題和B題、C題的差別在哪里很多隊(duì)伍拿到賽題后第一反應(yīng)是“這題需要跑什么模型”。這是個(gè)常見誤區(qū)。數(shù)學(xué)建模競(jìng)賽的選題本質(zhì)上是在選“問題類型”不是在選“算法庫(kù)”。拿A題來(lái)說(shuō)它通常具備幾個(gè)特征問題描述里有明確的研究對(duì)象比如某個(gè)運(yùn)動(dòng)體、某個(gè)生產(chǎn)系統(tǒng)、某個(gè)資源分配過程。題目要求得到的不只是趨勢(shì)圖而是具體數(shù)值、具體方案、具體判斷結(jié)論。輸入數(shù)據(jù)往往不完整需要你先做假設(shè)再通過模型推算出缺失信息。結(jié)果必須能用物理意義或業(yè)務(wù)邏輯解釋通純統(tǒng)計(jì)擬合很難兜底。相比之下B題和C題有時(shí)候可以靠數(shù)據(jù)挖掘、統(tǒng)計(jì)分析甚至深度學(xué)習(xí)硬做。A題如果不懂機(jī)理套深度學(xué)習(xí)模型通常效果不好。因?yàn)橛?xùn)練數(shù)據(jù)不足因?yàn)檩敵鼋Y(jié)果缺乏物理約束也因?yàn)樵u(píng)委一眼就能看出你沒有理解模型假設(shè)。我的建議很直接你們隊(duì)里至少要有一名隊(duì)員能花兩小時(shí)把題目里的物理過程、幾何關(guān)系、業(yè)務(wù)流程讀明白并且能畫出一張結(jié)構(gòu)圖。畫不出來(lái)后面所有工作都會(huì)飄。1.2 從近兩年競(jìng)賽題目看A題常見類型從近幾年的賽題風(fēng)格看A題常見的有這么幾類幾何運(yùn)動(dòng)類。比如某屆全國(guó)大學(xué)生數(shù)學(xué)建模競(jìng)賽A題“板凳龍”就是一個(gè)典型。這種題目看著像物理題實(shí)際難點(diǎn)在幾何關(guān)系推導(dǎo)。隊(duì)伍拿到題目后第一問通常要求算某一時(shí)刻的坐標(biāo)、速度或位置序列第二問才會(huì)進(jìn)入優(yōu)化比如調(diào)整間距、調(diào)整速率使某個(gè)指標(biāo)最優(yōu)。很多人第一問幾何表達(dá)式寫錯(cuò)后面全盤崩潰。資源分配與空間利用優(yōu)化類。典型例子是2023年高教杯D題“圈養(yǎng)湖羊空間利用率優(yōu)化”題目要求把空間利用率、成本、繁殖周期這些約束放到同一個(gè)優(yōu)化框架里。A題也會(huì)出現(xiàn)類似情況但約束更硬、機(jī)理更強(qiáng)。動(dòng)力學(xué)與演化過程類。這類題會(huì)讓一個(gè)系統(tǒng)隨時(shí)間演化要求你建立微分方程或差分方程。難點(diǎn)不在算法而在如何把題目里的離散描述變成連續(xù)模型或者把連續(xù)模型離散化后保證數(shù)值穩(wěn)定。數(shù)據(jù)加機(jī)理混合類。題目可能給你一組實(shí)測(cè)數(shù)據(jù)要求根據(jù)機(jī)理模型反推參數(shù)。這里很容易陷入“用曲線擬合代替機(jī)理建?!钡南葳濉M合得到的參數(shù)可能非常漂亮但沒有物理意義答辯時(shí)一問就露餡。所以真正準(zhǔn)備A題時(shí)不要只學(xué)算法要訓(xùn)練一種習(xí)慣拿到題目先寫“對(duì)象-變量-假設(shè)-目標(biāo)-約束”五個(gè)詞。這個(gè)習(xí)慣比背十個(gè)模型都管用。2. 賽前準(zhǔn)備建模環(huán)境、數(shù)據(jù)讀取和論文模板一次排好2.1 2026年備賽的軟件環(huán)境可以怎么配競(jìng)賽期間時(shí)間很緊不要在比賽第一天裝環(huán)境。你需要的不是最全的環(huán)境而是最穩(wěn)的組合。以我常用的組合為例Python 3.10 或 3.11配 Anaconda 管理環(huán)境。核心庫(kù)numpy、pandas、scipy、matplotlib。優(yōu)化場(chǎng)景可能需要scipy.optimize、pulp、ortools。如果題目規(guī)模大再考慮 Gurobi 或 CPLEX但要提前確認(rèn)許可證和安裝方式。微分方程場(chǎng)景scipy.integrate。論文寫作LaTeX 或者 Word 都可以。如果隊(duì)伍不熟悉 LaTeX建議 Word 加 MathType不要比賽期間臨時(shí)學(xué) LaTeX。繪圖matplotlib 足夠不一定要用復(fù)雜可視化庫(kù)。這里有個(gè)很容易忽略的問題隊(duì)伍內(nèi)部版本不一致。A同學(xué)用 pandas 2.0B同學(xué)還在用 pandas 1.3同一段代碼在不同機(jī)器上報(bào)錯(cuò)臨場(chǎng)排查會(huì)浪費(fèi)大量時(shí)間。建議賽前所有人用同一個(gè) requirements.txt 創(chuàng)建環(huán)境或者至少統(tǒng)一 Python 大版本。conda create -n mcm python3.11 -y conda activate mcm pip install numpy pandas scipy matplotlib openpyxlopenpyxl一定要裝因?yàn)楹芏喔?jìng)賽數(shù)據(jù)文件是.xlsx格式pandas 讀取 Excel 依賴它。如果不裝pd.read_excel會(huì)直接報(bào) ImportError。2.2 把“數(shù)據(jù)讀取-模型求解-結(jié)果繪圖”三段式框架先搭起來(lái)我見過很多隊(duì)伍比賽前三天才開始寫代碼結(jié)果第一天全在調(diào)路徑和編碼。更穩(wěn)妥的做法是賽前就把代碼框架搭成一個(gè)三段式結(jié)構(gòu)數(shù)據(jù)讀取層統(tǒng)一用 pandas 讀取 CSV、Excel 文件寫一個(gè)load_data.py。模型求解層每個(gè)問題寫一個(gè)獨(dú)立函數(shù)或腳本輸入是參數(shù)輸出是結(jié)果文件。結(jié)果展示層統(tǒng)一生成圖表和結(jié)果表格導(dǎo)出到results目錄。這樣做的好處很實(shí)際第一節(jié)寫代碼的人不關(guān)心第二節(jié)的數(shù)據(jù)格式第二節(jié)的人不關(guān)心第三節(jié)怎么畫圖。隊(duì)伍協(xié)作時(shí)接口越簡(jiǎn)單越好。# 通用數(shù)據(jù)讀取示例不是針對(duì)具體賽題 import pandas as pd def load_data(path): if path.endswith(.csv): return pd.read_csv(path) elif path.endswith(.xlsx): return pd.read_excel(path) else: raise ValueError(Unsupported file format)這里的load_data本身并不復(fù)雜但把它獨(dú)立出來(lái)能避免一個(gè)問題同一份賽題數(shù)據(jù)不同人用不同方式讀取結(jié)果對(duì)不上。比賽期間少一次扯皮就多兩個(gè)小時(shí)寫正文。3. 拿到賽題后的兩小時(shí)先拆題再定模型3.1 題目信息如何轉(zhuǎn)成變量、假設(shè)和目標(biāo)函數(shù)2026華數(shù)杯A題同樣要走這一步。賽題公布后第一件事不是查資料而是四個(gè)人一起讀題然后每個(gè)人獨(dú)立寫出三行話這個(gè)問題在做什么輸入是什么輸出是什么。接下來(lái)把它們匯總成一張表。這張表我建議包含四列已知條件題目明確給出的數(shù)據(jù)、參數(shù)、單位。未知量題目要求你計(jì)算或優(yōu)化的對(duì)象。約束條件需要考慮的限制比如時(shí)間窗、容量、物理范圍、設(shè)備數(shù)量。假設(shè)條件題目沒說(shuō)但你需要補(bǔ)充的簡(jiǎn)化條件。例如題目提到“某運(yùn)動(dòng)過程中速度恒定”那這是一個(gè)強(qiáng)約束。如果題目只說(shuō)“運(yùn)動(dòng)近似穩(wěn)定”那你需要補(bǔ)充假設(shè)并說(shuō)明原因。寫進(jìn)論文后評(píng)委能看懂你的思考過程。很多隊(duì)伍總想建一個(gè)“高級(jí)模型”結(jié)果把一個(gè)優(yōu)化問題硬套成神經(jīng)網(wǎng)絡(luò)模型。其實(shí)A題的高分關(guān)鍵不是模型新穎而是模型和題目嚴(yán)絲合縫。假設(shè)寫得越清楚模型越容易被理解也越容易被驗(yàn)證。3.2 題目像幾何運(yùn)動(dòng)類時(shí)怎么建模如果題目涉及一塊物體沿軌道運(yùn)動(dòng)、某個(gè)結(jié)構(gòu)展開或折疊、板凳龍游動(dòng)這類題材第一優(yōu)先考慮的是幾何關(guān)系。這類題的核心通常不是微積分而是坐標(biāo)系怎么建立。原點(diǎn)在哪正方向在哪。關(guān)鍵點(diǎn)坐標(biāo)怎么表達(dá)。例如某段圓弧的圓心角某一點(diǎn)的切向方向。運(yùn)動(dòng)學(xué)關(guān)系怎么表達(dá)。速度是標(biāo)量還是矢量角度變化率怎么求。結(jié)果如何驗(yàn)證。比如用數(shù)值方法計(jì)算出來(lái)的位置是否滿足題目給定的初始位置。對(duì)于幾何運(yùn)動(dòng)類問題建模順序應(yīng)該是先畫圖再寫幾何關(guān)系最后才是微分方程或優(yōu)化。畫圖這一步不是浪費(fèi)時(shí)間它能幫全隊(duì)快速統(tǒng)一理解。我在處理“板凳龍”這類題時(shí)會(huì)先畫出龍頭、龍身、龍尾的連接關(guān)系再把關(guān)鍵點(diǎn)編號(hào)然后用數(shù)組存儲(chǔ)每個(gè)點(diǎn)的位置。這樣到第二問做調(diào)整時(shí)只需要改個(gè)別參數(shù)不需要重寫整個(gè)模型。3.3 題目像優(yōu)化類時(shí)怎么建模優(yōu)化問題的標(biāo)準(zhǔn)流程是定義決策變量。寫出目標(biāo)函數(shù)。列出約束條件。判斷問題類型線性、非線性、整數(shù)規(guī)劃、動(dòng)態(tài)規(guī)劃。選擇求解方法。這一步最常犯的錯(cuò)誤是“目標(biāo)函數(shù)沒想清楚就寫代碼”。比如目標(biāo)明明是“在滿足最小安全間距的前提下讓總時(shí)間最小”結(jié)果代碼里只寫了時(shí)間最小安全間距卻沒有約束最終結(jié)果當(dāng)然不合理。如果目標(biāo)是成本最小、資源利用率最大、排隊(duì)時(shí)間最短建議先寫出數(shù)學(xué)表達(dá)式再確認(rèn)單位的統(tǒng)一。比如時(shí)間單位是小時(shí)還是分鐘距離單位是米還是千米。單位不統(tǒng)一靈敏度分析根本沒法看。# 優(yōu)化求解的通用思路具體模型以賽題為準(zhǔn) from scipy.optimize import minimize def objective(x): return x[0]**2 x[1]**2 cons ({type: ineq, fun: lambda x: x[0] x[1] - 1}) res minimize(objective, [0, 0], constraintscons) print(res.fun, res.x)這段代碼不是華數(shù)杯A題的通解但它演示了一個(gè)關(guān)鍵點(diǎn)constraints不寫進(jìn)去結(jié)果就可能違反題目要求。優(yōu)化求解器本身不會(huì)替你做物理判斷。4. 代碼怎么寫先求出一問的穩(wěn)定結(jié)果再談擴(kuò)展4.1 一個(gè)適合A題的代碼目錄和主流程比賽期間代碼文件會(huì)越來(lái)越多如果不做目錄管理第二天基本就亂了。我建議每個(gè)隊(duì)伍在第一天就建立固定目錄結(jié)構(gòu)src/ data_loader.py q1/ model.py run.py q2/ model.py run.py utils/ plot.py result_io.py data/ raw/ processed/ results/ figures/ tables/ docs/ 論文正文.docx這個(gè)結(jié)構(gòu)并不復(fù)雜但能解決幾個(gè)實(shí)際問題每問的代碼獨(dú)立避免一個(gè)人改亂了另一個(gè)人還在用的函數(shù)。數(shù)據(jù)和代碼分離重新跑題時(shí)不用翻找文件。結(jié)果統(tǒng)一輸出到results目錄寫論文的人可以直接取圖表。關(guān)于運(yùn)行方式我更建議每個(gè)run.py可以直接在命令行運(yùn)行同時(shí)把關(guān)鍵參數(shù)放在代碼開頭并支持通過命令行參數(shù)覆蓋。python src/q1/run.py --input data/raw/data.xlsx --output results/tables/q1_result.csv這樣調(diào)整參數(shù)不用改代碼也方便記錄每次跑結(jié)果時(shí)用的參數(shù)。對(duì)比賽后寫參數(shù)說(shuō)明和靈敏度分析非常有用。4.2 參數(shù)、隨機(jī)種子和輸出目錄為什么要在開頭就設(shè)計(jì)好比賽到了第二天你一定會(huì)面臨一個(gè)問題改了某個(gè)參數(shù)后之前的結(jié)果被覆蓋了想對(duì)比兩種方案的數(shù)據(jù)已經(jīng)找不回來(lái)了。解決辦法很笨但有效所有輸出文件命名時(shí)帶上參數(shù)信息或時(shí)間戳。import datetime import os output_dir results/tables timestamp datetime.datetime.now().strftime(%Y%m%d_%H%M%S) out_path os.path.join(output_dir, fq1_result_{timestamp}.csv)如果模型涉及隨機(jī)初始化、隨機(jī)抽樣、隨機(jī)梯度下降一定要固定隨機(jī)種子否則兩次運(yùn)行結(jié)果可能完全不同論文里寫的數(shù)值就不可復(fù)現(xiàn)了。import numpy as np np.random.seed(42)這里要特別注意固定隨機(jī)種子只是保證復(fù)現(xiàn)不代表結(jié)果穩(wěn)定。如果模型對(duì)初始值特別敏感你要換幾個(gè)種子分別跑一次觀察結(jié)果波動(dòng)范圍。如果波動(dòng)太大說(shuō)明模型穩(wěn)定性不足需要調(diào)整假設(shè)或約束而不是反復(fù)調(diào)隨機(jī)種子。競(jìng)賽題目發(fā)布后第一問通常不會(huì)太難。我的建議是第一天下午必須把第一問完整跑通包括圖表和輸出文件。最怕的情況是隊(duì)伍在第二問上反復(fù)較勁結(jié)果第一問的結(jié)果表格都沒生成。4.3 代碼報(bào)錯(cuò)時(shí)不要亂調(diào)參數(shù)先看數(shù)據(jù)形狀A(yù)題代碼報(bào)錯(cuò)很大概率不是算法問題而是數(shù)據(jù)類型和形狀問題。比如Excel 讀進(jìn)來(lái)有些列是字符串需要先astype(float)。日期列被 pandas 解析成Timestamp參與數(shù)值運(yùn)算時(shí)報(bào)錯(cuò)。索引不連續(xù)用iloc和loc混用后取錯(cuò)數(shù)據(jù)。多個(gè)表合并時(shí)重復(fù)列名導(dǎo)致拼接結(jié)果完全不對(duì)。這兩個(gè)小時(shí)里最容易踩坑的就是“讀取數(shù)據(jù)時(shí)沒有統(tǒng)一 dtype”。拿到數(shù)據(jù)后第一件事是打印df.dtypes和df.head()確認(rèn)每一列類型正確再寫后續(xù)邏輯。df load_data(data/raw/data.xlsx) print(df.dtypes)不要一看到數(shù)據(jù)量很大就急著寫復(fù)雜模型。先用小樣本跑通比如取前50行確認(rèn)每個(gè)流程都正確再全量運(yùn)行。低配置電腦尤其應(yīng)該這樣做。5. 論文成稿階段最容易拉開差距的四塊內(nèi)容5.1 摘要和問題分析評(píng)委最看重的前兩屏競(jìng)賽論文的摘要非常關(guān)鍵。評(píng)委通常先看摘要再?zèng)Q定要不要細(xì)看正文。摘要寫不好模型再漂亮也可能被壓分。摘要要回答四個(gè)問題題目要解決什么問題你采用了什么主要方法得到的關(guān)鍵數(shù)值結(jié)果是什么結(jié)論是否通過檢驗(yàn)我把“關(guān)鍵數(shù)值結(jié)果”單獨(dú)提出來(lái)是因?yàn)楹芏嚓?duì)伍摘要里全是“建立了模型”“進(jìn)行了分析”這類空話沒有具體數(shù)字。評(píng)委想看的是結(jié)果不是形容詞。摘要更合理的寫法是“本文針對(duì)A題描述的運(yùn)動(dòng)規(guī)劃問題建立了基于幾何約束的運(yùn)動(dòng)學(xué)模型。首先通過坐標(biāo)變換得到各關(guān)鍵點(diǎn)的位置表達(dá)式進(jìn)而構(gòu)造以總時(shí)間最小為目標(biāo)、最小安全距離為約束的非線性規(guī)劃模型。求解得到最小總時(shí)間為 xxx 秒較基礎(chǔ)方案縮短了 xxx%。對(duì)關(guān)鍵參數(shù)進(jìn)行靈敏度分析后發(fā)現(xiàn)隊(duì)形間距對(duì)總時(shí)間影響最顯著。”這樣一段話信息密度比“本文運(yùn)用了多目標(biāo)規(guī)劃方法”高得多。5.2 圖表、公式和結(jié)果表格用可復(fù)現(xiàn)的方式組織論文里的圖表質(zhì)量直接影響閱讀體驗(yàn)。以下是幾個(gè)常見問題圖片像素太低放大后看不清坐標(biāo)軸數(shù)字。折線圖沒有標(biāo)注每一條曲線的含義。圖表標(biāo)題只寫“圖1”沒有說(shuō)明性描述。公式?jīng)]有編號(hào)后文引用時(shí)只能靠猜。建議統(tǒng)一用 matplotlib 生成矢量圖導(dǎo)出為 PDF 或高分辨率 PNG再插入論文。腳本里固定圖形尺寸和字號(hào)避免每張圖風(fēng)格不一致。import matplotlib.pyplot as plt plt.rcParams[figure.figsize] (8, 5) plt.rcParams[font.size] 11結(jié)果表格盡量用簡(jiǎn)潔的三線表。不要把幾百行原始數(shù)據(jù)貼進(jìn)正文只需要展示不同方案、不同參數(shù)下的關(guān)鍵對(duì)比結(jié)果。5.3 靈敏度分析怎么做才能顯示結(jié)論穩(wěn)健不少隊(duì)伍把靈敏度分析當(dāng)成“參數(shù)變化結(jié)果變化”兩張圖表就完事了。這樣做不算錯(cuò)但發(fā)揮不出應(yīng)有作用。更有價(jià)值的做法是找核心參數(shù)比如約束條件里的安全距離、模型里的阻尼系數(shù)、優(yōu)化里的權(quán)重。在基礎(chǔ)值附近上下浮動(dòng)比如 ±5%、±10%、±20%。記錄目標(biāo)函數(shù)或輸出結(jié)果的變化比例。分析哪幾個(gè)參數(shù)是敏感參數(shù)哪幾個(gè)可以忽略。在論文里用一兩段話說(shuō)清楚“當(dāng)安全間距從1.0米變化到1.5米時(shí)總時(shí)間增加8%這表明結(jié)果對(duì)安全間距較敏感實(shí)際應(yīng)用中需要精確測(cè)定該參數(shù)。”通過這種方式靈敏度分析不只是“驗(yàn)證穩(wěn)健性”還能給實(shí)際應(yīng)用提出建議。評(píng)委很吃這一套因?yàn)檫@說(shuō)明你真的理解了模型而不只是跑通了代碼。6. 常見報(bào)錯(cuò)、翻車現(xiàn)場(chǎng)和排查順序6.1 先判斷現(xiàn)象再動(dòng)手不盲目改參數(shù)比賽期間最怕的不是報(bào)錯(cuò)而是報(bào)錯(cuò)后亂改。我見過有隊(duì)員面對(duì)“優(yōu)化結(jié)果不收斂”時(shí)把迭代次數(shù)從1000調(diào)到10000結(jié)果仍然不收斂最后發(fā)現(xiàn)是約束寫錯(cuò)了方向。所以一定要建立排查順序先看現(xiàn)象是程序崩潰還是結(jié)果不合理還是運(yùn)行超慢再看輸入數(shù)據(jù)路徑、讀取格式、列名、單位、時(shí)間范圍。再看環(huán)境依賴版本、Python版本、中文路徑、權(quán)限。再看參數(shù)初始值、邊界條件、約束方向、收斂閾值。最后再檢查算法本身模型選擇是否合適目標(biāo)函數(shù)是否連續(xù)約束是否沖突。這個(gè)順序看起來(lái)非常簡(jiǎn)單實(shí)際能做到的隊(duì)伍不多。多數(shù)人一上來(lái)就改參數(shù)改完還是錯(cuò)最后查出來(lái)是數(shù)據(jù)文件路徑不對(duì)。6.2 幾類高頻問題的排查方向程序直接報(bào)錯(cuò) FileNotFoundError先看當(dāng)前工作目錄。用os.getcwd()打印當(dāng)前路徑然后把文件路徑改成絕對(duì)路徑或者用相對(duì)路徑時(shí)確認(rèn)起點(diǎn)。Windows 下還要注意路徑分隔符。結(jié)果全是 NaN 或 Inf通常不是代碼隨機(jī)問題而是數(shù)據(jù)里有缺失值、除數(shù)為0、log里出現(xiàn)負(fù)數(shù)、exp溢出。可以先用df.isna().sum()檢查缺失值再在關(guān)鍵計(jì)算前后打印中間值。優(yōu)化求解器一直不收斂先檢查約束是否可行初始點(diǎn)是否在可行域內(nèi)。如果初始點(diǎn)離最優(yōu)解太遠(yuǎn)可以考慮先用網(wǎng)格搜索或隨機(jī)采樣生成一個(gè)合理初始值再交給優(yōu)化器。求解速度過慢A題不需要追求超大算力。如果程序運(yùn)行超過一小時(shí)通常是算法復(fù)雜度太高或者循環(huán)寫得不合理。優(yōu)先用向量化計(jì)算替代for循環(huán)。如果必須循環(huán)也要限制樣本量先用小規(guī)模驗(yàn)證。圖表中文亂碼Windows 下 matplotlib 最常出現(xiàn)中文亂碼。簡(jiǎn)單處理方式是繪圖前設(shè)置中文字體。plt.rcParams[font.sans-serif] [SimHei] plt.rcParams[axes.unicode_minus] False如果 Linux 環(huán)境沒有 SimHei可以改用系統(tǒng)中支持中文的字體。具體方法可以在比賽前提前測(cè)一遍把字體配置記到隊(duì)伍共享文檔里。6.3 臨場(chǎng)分工建議誰(shuí)管模型誰(shuí)管代碼誰(shuí)管論文三天比賽最合理的分工不是“一個(gè)人寫完所有代碼再交給另一個(gè)人寫論文”而是從第一天起三人并行。參考分工第一人負(fù)責(zé)建模推導(dǎo)寫公式和模型假設(shè)把握整體邏輯。第二人負(fù)責(zé)代碼實(shí)現(xiàn)和數(shù)據(jù)結(jié)果保證每問有輸出。第三人負(fù)責(zé)論文框架、圖表整理和摘要寫作同時(shí)每天更新“已完成結(jié)果”清單。第四個(gè)人如果存在可以做查資料、校驗(yàn)結(jié)果、檢查格式、找參考文獻(xiàn)的工作。這個(gè)崗位比想象中重要因?yàn)榕R到提交前兩小時(shí)格式查錯(cuò)往往是最大的坑。7. 從報(bào)名到提交三天的節(jié)奏怎么安排7.1 第一天白天完成題解和第一問賽題發(fā)布后前兩小時(shí)只做拆題不寫代碼。把題目里所有關(guān)鍵詞標(biāo)出來(lái)把已知條件和未知量寫清楚。第一天晚上之前必須完成第一問的模型建立和初步求解。哪怕結(jié)果不完美也要有一個(gè)可運(yùn)行版本。第一問往往是后續(xù)問題的基礎(chǔ)基礎(chǔ)不穩(wěn)后面只會(huì)越來(lái)越亂。第一問跑通后馬上生成結(jié)果表格和圖表。這一步不是給論文用也是為了防止后面改錯(cuò)代碼后至少有一份參考結(jié)果能對(duì)比。7.2 第一天晚上到第二天集中攻后面幾問第二問通常是在第一問基礎(chǔ)上擴(kuò)展比如引入優(yōu)化目標(biāo)、增加約束、擴(kuò)大規(guī)?;蚣尤敫嘧兞?。寫代碼時(shí)盡量復(fù)用第一問的數(shù)據(jù)結(jié)構(gòu)和函數(shù)接口不要推倒重寫。如果第二問涉及大規(guī)模優(yōu)化建議先用小規(guī)模樣例驗(yàn)證代碼正確性再運(yùn)行完整版本。完整版本運(yùn)行結(jié)束后記錄關(guān)鍵參數(shù)和運(yùn)行時(shí)間。第三天上午必須停止大面積改代碼。剩下的時(shí)間只做兩件事補(bǔ)齊論文圖表、完善摘要和靈敏度分析。如果此時(shí)還在重構(gòu)模型提交前大概率出亂子。7.3 交卷前最后兩小時(shí)的檢查清單最后階段要檢查的點(diǎn)很多我把它們按優(yōu)先級(jí)排一下論文是否完整問題分析、模型假設(shè)、模型建立、求解、檢驗(yàn)、結(jié)論、參考文獻(xiàn)。摘要是否包含具體數(shù)值結(jié)果。正文所有圖表是否有編號(hào)、有標(biāo)題、有解釋。代碼是否能直接運(yùn)行從命令行執(zhí)行python run.py不依賴 IDE。輸出文件是否完整每問的答案表格、圖表是否都生成。文件命名是否規(guī)范論文、支撐材料、代碼文件夾是否清晰。有沒有使用絕對(duì)路徑把你的代碼發(fā)給隊(duì)友換一臺(tái)電腦測(cè)試能跑通才是真的能跑通。重復(fù)內(nèi)容清理不要保留調(diào)試代碼、注釋掉的舊版本代碼、無(wú)用的輸出文件。參考文獻(xiàn)格式是否統(tǒng)一。這份清單可以在賽前打印出來(lái)比賽結(jié)束前兩小時(shí)逐項(xiàng)打鉤。最后再說(shuō)一點(diǎn)個(gè)人感受很多第一次參加數(shù)學(xué)建模競(jìng)賽的同學(xué)會(huì)把大量精力花在“找一個(gè)聽起來(lái)很高端的模型”上。但真正跑完幾場(chǎng)比賽后你會(huì)發(fā)現(xiàn)A題的高分隊(duì)伍往往不是因?yàn)橛昧硕鄰?fù)雜的算法而是把題目理解得很透徹把模型假設(shè)說(shuō)得清楚把結(jié)果檢驗(yàn)做得很扎實(shí)。2026年華數(shù)杯A題也一樣。無(wú)論是幾何運(yùn)動(dòng)、資源優(yōu)化還是動(dòng)態(tài)系統(tǒng)最先拼的都是對(duì)題目的理解力其次才是建?;竟ψ詈蟛攀谴a速度。代碼只要結(jié)構(gòu)清晰、結(jié)果可復(fù)現(xiàn)、圖表規(guī)范就已經(jīng)超過了相當(dāng)一部分隊(duì)伍。我更建議你從現(xiàn)在開始就做三件事熟悉 Python 數(shù)據(jù)處理和分析的基礎(chǔ)操作、整理一套自己的論文模板、和隊(duì)友提前分好工。等到賽題發(fā)布那天你們要做的不是從零開始而是把提前準(zhǔn)備好的流程跑一遍。希望這篇備賽思路能幫你少走一點(diǎn)彎路。真到了比賽那幾天穩(wěn)住節(jié)奏比什么都重要。