CSCI3230 HW01 · 2026T1 · 分级提示
学习衔接:本次课件内容补全后,可直接学习 回归建模、最小二乘、逻辑回归 与 梯度下降,再逐小问作答;本篇保持原作业题号、数据及提示/答案边界。作业题面核验记录沿用此前版本,本次不称重新核对试卷。
课程:CSCI3230 / ESTR3108 · 2026–2027 Term 1 本份:Assignment 1,按 Q1–Q4 的 13 个小问练习 定位:先独立尝试;卡住时只展开一层,得到方向后就停下来继续写。
题目依据本学期 HW01 原题(本地课件),页码均为 PDF 页号。下文是保留条件的题目简述,公式按原题重排;不是完整解答。原题已给出的证明目标也单独收起,方便先挑战推导。
本页的提示不是按“看完三层就抄完答案”设计。每层先给你一个能动笔的小动作;得到方向就收起页面继续尝试。补充例子明确使用自取数字,不替本题计算。
每小问的提示 2 藏在提示 1 内,提示 3 藏在提示 2 内;不会自动展开。先写出你已经知道什么、未知量是什么,再决定是否继续看。完整解析入口在文末,需另行展开确认。
Q1 · 多项式回归(p.1–2)
条件:以训练数据最小化 RSS,分别拟合一次、二次、四次多项式,再使用测试集评估。训练和测试各 10 行;测试数据不能参与拟合。原题 p.1 的数据如下:
| 行 | 训练 x | 训练 y | 测试 x | 测试 y |
|---|---|---|---|---|
| 1 | 7 | 0.9 | 7.2 | 0.6 |
| 2 | 1.6 | 1.4 | 1.1 | 1 |
| 3 | 3.8 | 0.7 | 3.6 | 0.3 |
| 4 | 4.7 | -0.3 | 4.8 | -0.4 |
| 5 | 4 | 0 | 4.3 | 0 |
| 6 | 6.3 | 0.6 | 6.6 | 0.2 |
| 7 | 7.9 | 1.7 | 7.8 | 1.8 |
| 8 | 5.7 | 0.1 | 5.6 | 0.6 |
| 9 | 7.1 | 2.1 | 7.3 | 1.7 |
| 10 | 8 | 1.3 | 8.2 | 1.3 |
Q1(a) · 一次模型(p.1,5%)
求 的解析解,并将拟合直线与训练点画在同一张图。
提示 1 · 切入点
先不要算系数。在纸上写下“已知的是十行输入和标签;未知的是两个共用参数”。选任意一行,只把这一行预测写出来,再看下一行是否用的还是同两个参数。你不是要给十个点各配一条线。
如果“矩阵”让你卡住,先用列来理解:一列负责基础值,另一列负责输入带来的变化。想一想,第一列应放什么数,才能让每行都恰好加一次截距?先自行写出两行就停,检查它们乘参数后是否回到题给模型。
提示 2 · 关键关系
把你刚写的十行收集为设计矩阵 ,把两个参数竖排为 ,标签竖排为 。先检查乘法输出是否是一列十个预测。于是 表示逐行“预测减真实”,而不是两个数据集相减。
目标可写成 。不熟矩阵求导时,先对一个参数求导:只挑一条残差平方,外层平方和内层预测各对导数贡献什么?得到这一行的结果后,再考虑十行怎样合起来。这里先推关系,暂不代入本题数字。
提示 3 · 下一步与自检
把两个参数的导数分别设为零,你应得到两个未知量的线性方程。先解这组方程,再将所得参数代回十条预测;不要把“有逆矩阵公式”当作矩阵总可逆的证明。
自检可以用 :它应接近零向量,长度应与参数个数相同。画图时把训练点作为散点,把模型在连续横坐标上的预测作为线;若你只是按表格行号连接十个点,还没有画出拟合模型。
Q1(b) · 二次模型(p.1,5%)
求 的解析解,并画曲线与训练点。
提示 1 · 切入点
这一问增加了曲线的弯曲能力,但没有改变“选一套共用系数,使总平方误差小”的任务。把式子中已知的输入部分与未知系数用两种标记圈开:平方加在输入上,还是加在参数上?
先尝试用一句话解释为什么仍能沿用(a)的求解路线。只要把各输入变换看成提前算好的数字,你就可以把它们当作新的特征列。此时不要重新发明一套与(a)无关的解法。
提示 2 · 关键关系
原题已经提示加入平方特征列。你可以先单独练一行:补充自取输入为2时,平方特征为4;这只是同一个样本多了一种描述,不是多生成一条标签。
回到题表,逐行计算所需特征,并检查每行仍与原来的 配对。矩阵应有10行、3列。暂时不要把整张表和求解连在一个黑箱操作里,先查一次行列含义,尤其检查常数列是否还在。
提示 3 · 下一步与自检
用你在(a)已经推出来的方程替换新的设计矩阵,求三个参数;仍只使用训练集。求解后挑一条训练输入,分别用多项式与矩阵乘法算预测,检查二者一致。
画曲线时另取从小到大的横坐标网格。原题输入行本来没有排序,直接按原行序连预测会折返,这不是二次模型的真实形状。最终显示系数时可以舍入,但检验与作图尽量使用未舍入结果。
Q1(c) · 四次模型(p.2,5%)
求 的解析解,并画曲线与训练点。
提示 1 · 切入点
先数清这次要学几个系数,而不是看到“四次”就把参数本身取四次幂。把(b)的预测看成已有的三块贡献;题目现在再允许哪两种输入变换贡献预测?
你只是在扩展特征集合,训练样本仍是原来的十行。先写出列的含义,不急着填完整数据或计算解。
提示 2 · 关键关系
按模型正文,从常数幂到四次幂检查列顺序。原件p.2提示矩阵最后一行的三次列印成了四次;应以题目明确写出的模型为准,不把同一幂重复当成两种特征。
补充自取输入为2:三次幂为8、四次幂为16。用这个小例区分它们后,再检查本题每行。这个检查只帮你保证数据表示正确,没有替你组成完整设计矩阵。
提示 3 · 下一步与自检
先用足够精度解方程,再代回训练集评估。数值系数可能有正有负,不要因为符号相反就擅自删项;多项式各项可能互相抵消,过早舍入会放大误差。
做一个结构自检:四次模型的允许集合是否包含你在(b)得到的模型?如果包含,想想精确求得的最小训练RSS之间应满足什么关系。若你的数值结果明显违反这个关系,先查列、标签顺序及精度;不要据此直接判断测试表现。
Q1(d) · 泛化判断(p.2,10%)
观察三条函数,判断哪些可能欠拟合、过拟合,哪个相对较好;计算测试数据的预测误差检验判断。
提示 1 · 切入点
先把“拟合训练记录”和“预测新记录”分成两张纸。训练图只告诉你第一件事;判断泛化,还需要第二件事的结果。不要看到次数高就直接写过拟合,也不要看到训练误差小就宣布最佳。
先用普通话描述三条曲线:它有没有抓住数据的大致走势?哪里出现较大的局部弯折?这些只是待检验的观察,还不是最终判定。然后才打开测试表去找证据。
提示 2 · 关键关系
为每个已经求好的模型留两格:训练RSS、测试RSS。测试时固定参数,只把测试横坐标代进去,再与同一行的测试标签相减。不要用测试标签再拟合一次,否则你评价的是另一个模型。
若平方和仍不直观,补充自取两个残差为1和−1:直接相加为0,却不表示两次都预测正确。先想清应怎样合成这两条误差,再回本题逐项计算。这里不预先告诉你哪个次数获胜。
提示 3 · 下一步与自检
检查每个模型的误差都在同一组测试样本上计算、都使用同一尺度。RSS是平方后求和;若报告MSE,写清还除以多少条样本。不要把“先把残差相加再平方”当成RSS。
写结论时让每一句都有对应证据:训练表现与测试表现是否一起改善?是否出现一边更好另一边更差?也看看测试横坐标有没有超出训练范围,但不要把单个外推点自动解释为某个模型一定失败。
Q2 · 岭回归(p.2)
有 个样本, 是特征行向量, 是斜率向量, 是截距。原题目标为
若每条记录有 个特征, 是 行向量, 是 列向量,因此 与截距、标签一样都是标量。、 分别为特征均值向量和标签均值;截距不在惩罚项中。沿用原题求和损失,不自行增加平均因子。
Q2(a) · 截距的最小化(p.2,10%)
原题在残差内加减 ,要求证明给定截距使目标最小。先固定斜率,尝试自行找到该截距;原题给定表达式可展开查看。
提示 1 · 切入点
这问先只动截距。把斜率向量想成暂时锁住的旋钮;现在允许整组预测一起向上或向下移动,寻找平方误差最低的位置。给含 的项做标记,再检查惩罚项有没有这个符号。
写“固定斜率”不是形式要求:若同时改变斜率与截距,你就把这一小问扩成了整个岭回归问题。先把一次只优化一个变量的范围守住。
提示 2 · 关键关系
先只对一条残差平方求截距导数,再把所有样本相加。每条残差里截距的系数相同;检查你是否为它误乘了某个输入特征。惩罚项在这一步是否会变化,也要自己说明。
当求和式变长时,用均值定义替换数据的累加。可以先练没有模型的补充小例:三个数2、5、8的总和等于“个数乘均值”。同一个规则可以按坐标用于特征行向量。整理后由你自己解出截距,不在这里写目标闭式。
提示 3 · 下一步与自检
找到让一阶导数为零的候选后,还差“确实最小”的理由。只沿截距方向再求一次导数,检查它的符号;或把该方向写成非负平方项加常数。
最后用一句话写清:你的候选是在其他参数固定时使哪一个函数最小。不要把一个驻点直接当作一般函数的最低点,也不要把截距放进原本只惩罚斜率的项里。
Q2(b) · 中心化(p.2,5%)
令 、,将 (a) 的截距代入,证明目标可以只用中心化输入、标签和斜率表示。
提示 1 · 切入点
中心化只是“减去本列的平均值”,不是复杂的新算法。补充自取一列输入2、4、6:均值为4,减均值后是−2、0、2,和为零。标签列有自己的均值,不使用输入列的均值。
回到本题,先挑一个样本,把它原来的残差单独写下来。暂时不展开平方,也不同时处理整个求和;这一行变清楚后,其他行会用相同规则。
提示 2 · 关键关系
把(a)中你自己得到的截距代入这一条残差。接下来只做整理:含特征与斜率的部分放在一起,含标签及标签均值的部分放在一起。每次移动负号时都保留括号。
看看哪些组恰好对应题目定义的中心化量,再用短符号替换。先亲手完成这一行的等价变形,不要以“都是减均值”一句话跳过最关键的符号整理。
提示 3 · 下一步与自检
将你改写后的单行残差放回平方和。检查改写之前与之后是否只是同一个数的两种写法,正则项有没有被无故增加、减去或缩放。
完成后应能只用中心化数据与斜率描述这部分优化,而截距仍可在最后由(a)恢复。若你引入了标准差或把惩罚项也中心化,先停下来:本题只要求减均值,没有提出那些新操作。
Q2(c) · 斜率的解析解(p.2,10%)
对中心化后的目标 求一阶导数,得到岭回归斜率的解析解。
提示 1 · 切入点
先确认对象形状。若每条样本有 个特征,中心化数据有 行、 列;斜率是 项的列向量,中心化标签有 项。因此残差是样本长度,梯度却应是参数长度。
与Q1相比,拟合误差部分仍是残差平方和,现在额外多了参数惩罚。先把两部分分开处理,别试图从记忆里一次写出最终逆矩阵公式。
提示 2 · 关键关系
若矩阵求导卡住,就只挑斜率的一个分量求偏导:对每条残差平方用链式法则,再把样本贡献加起来。惩罚部分可以先写成参数分量的平方和,看看其中哪些项与当前分量有关。
分别得到两部分的导数后,才将它们相加、设为零并整理。所有含未知斜率的项放同一侧;若为了相加引入单位矩阵,它的行列数应与斜率长度相匹配。这一步由你自己写出系数矩阵。
提示 3 · 下一步与自检
把结果视为一组线性方程,而不是看到方阵就直接写逆。为了说明可逆,取一个非零向量 ,用它从左右夹住你得到的系数矩阵;检查所得标量中哪一部分永不为负,哪一部分在 时严格为正。
最后区分两份输出:这一步求的是斜率;截距要回(a)恢复。整个过程都不能把未受罚的截距误加进同一惩罚矩阵。这里保留你完成导数、合并与求解的关键步骤。
原题 Q2(a)、Q2(b) 给定的目标式(可选查看)
Q2(a) 要证明固定斜率时, 使截距方向的目标最小。
Q2(b) 要得到 。
Q3 · Logistic 回归(p.3)
使用线性分数 、sigmoid 和交叉熵。初始参数为 、、;学习率为 。原题数据如下:
| 行 | 训练 x1 | 训练 x2 | 训练 y | 测试 x1 | 测试 x2 | 测试 y |
|---|---|---|---|---|---|---|
| 1 | 0.15 | 0.35 | 0 | 0.28 | 0.82 | 1 |
| 2 | 0.30 | 0.45 | 0 | 0.45 | 0.75 | 1 |
| 3 | 0.55 | 0.25 | 0 | 0.58 | 0.62 | 1 |
| 4 | 0.30 | 0.80 | 1 | 0.72 | 0.48 | 1 |
| 5 | 0.55 | 0.60 | 1 | 0.22 | 0.40 | 0 |
| 6 | 0.70 | 0.50 | 1 | 0.50 | 0.26 | 0 |
计算约定:原题写交叉熵与“一次 iteration”,没有在题面展开 sum/mean、批量细节或阈值。为与课程既有解析保持一致,本提示按求和交叉熵、全批量同步更新、阈值 0.5、类别 1 为正类理解;这些是计算约定,不冒充题面逐字条件。作答时写清自己的约定。
Q3(a) · 模型与损失(p.3,5%)
写出正类概率的 logistic 模型及其交叉熵误差函数。
提示 1 · 切入点
先画三个框:输入特征→线性分数→正类概率。分数可以是任意实数,概率必须在0与1之间;阈值分类还在概率之后。这问先要求模型与损失,不需要先输出每行最终类别。
原题已经给了线性分数和sigmoid定义。先由你把两者接起来,再检查输入两个数时输出是否只有一个正类概率。不要把初始权重、真实标签与概率混成同一列。
提示 2 · 关键关系
记第 行正类概率为 。真实标签若为1,观察到该标签的概率用哪一个数?标签若为0,又应取哪一部分?先分两种情况写,不急着合成一个长公式。
损失希望“真实标签越不可能,惩罚越大”。考虑对刚才的概率取负自然对数,再想怎样利用0/1标签将两种情况合并。这里不给出合并后的最终交叉熵,留给你完成这一问。
提示 3 · 下一步与自检
用补充自取概率来查方向:真实类别的概率从0.8降到0.2,惩罚应该增加还是减少?这不需要本题的数据,只检查你有没有漏掉负号或把两类概率放反。
再写清跨样本采用求和还是平均,并与(b)保持一致。若写的是总损失,梯度也应来自同一个总损失;不能在公式写求和、计算时又未经说明除以样本数。
Q3(b) · 一次更新(p.3,10%)
用训练集做一次梯度下降,更新三个参数并写出新的 logistic 模型。
提示 1 · 切入点
先做一张训练计算表,列名为“旧分数、旧概率、真实标签”。用同一套题给初始参数填完六行,再考虑导数。此时只做前向计算,不更新任何一个权重。
如果你边算第一行就改参数,后面的行会用另一套模型,已经不再是这里采用的全批量一步更新。把“旧参数”写在表头,有助于防止不知不觉改成逐样本更新。
提示 2 · 关键关系
把一个样本的计算链拆为三段:损失随概率怎样变、概率随分数怎样变、分数随当前参数怎样变。每次只对一个变量求导,其他量暂时固定,再按链式法则连接。
截距与两个权重最后这一段不同。可先看补充表达式 :改变 一点点时,整个分数怎样变?改变 时又与哪个输入有关?这是机制练习,不是本题梯度数值。完成单行后,再聚合六行贡献。
提示 3 · 下一步与自检
把三个梯度先各写在独立格中,检查它们都由旧参数计算。然后才同步做“旧值减学习率乘梯度”;同一轮不要让第二个参数使用第一个已经更新后的值。
若怀疑某个导数的正负号,可以暂时只将该参数向两侧各挪很小一步,比较损失变化来检验方向。保持其他参数、数据与sum/mean约定不变。这只是核验办法,不在此给出三个梯度或更新后的参数。
Q3(c) · 测试评价(p.3,10%)
用 (b) 的新模型预测全部测试样本,计算 accuracy、precision、recall。
提示 1 · 切入点
这问不再训练。锁定(b)的新参数,把测试表每行依次变成分数、概率、预测类别,再保留旁边的真实标签。检查你没有误用题目最初那套参数,也没有把训练行复制进测试表。
在表头先注明阈值、恰好等于阈值时的规则,以及哪个标签叫正类。先确定约定,再统计,避免为了让某个结果看起来合理而中途换标准。
提示 2 · 关键关系
逐行比较“实际”和“预测”,先分四堆再算指标。TP与TN都是预测对,但所属实际类别不同;FP是误报成正类,FN是把实际正类漏掉。
用独立的补充判断练手:一条实际标签0、预测标签1的记录,该归哪堆?先用中文说明它错在哪里,再决定字母。回到本题六行做同样动作,不跳过逐行记录直接猜总数。
提示 3 · 下一步与自检
四堆计数总和应等于测试行数。接着为每个指标先说清分母的含义:accuracy覆盖全部样本,precision只问“被报为正”的那些,recall只问“实际为正”的那些。不要把后两组集合混用。
若某个分母为零,需要明确所采用的处理约定;不能机械除零。保留计数表后再换算比例,便于发现一个样本分类错放导致的连锁变化。此处不给出本题任何混淆矩阵计数或指标数值。
Q4 · Softmax(p.3–4)
一个 维样本 ,共 类,每类有权重向量 。标签为 one-hot:只有真实类别对应分量为 1,其他为 0。记
这里 和每个 都是 列向量, 是标量;数特征,数类别。Q4的大写 是一条样本,不沿用Q1中“整张训练矩阵”的含义。先圈清这个记号变化,再求导。
原题 (a)、(c) 已印出要求证明的目标式。为避免提前揭底,目标式另行收起;推导提示不直接复述最终结果。
Q4(a) · 对分数求导(p.3,10%)
计算 对 的导数,分别讨论 与 ,得到原题给定的分段表达式。
提示 1 · 切入点
先把 与 分开:表示你在观察哪一个输出概率,表示你正在改变哪一个输入分数。它们相等和不等是两个不同情况,不要在第一行就默认同一个下标。
将公共分母暂叫 ,先不求导,只做依赖检查:改变某一个分数时,分母里哪一项变化?若改变的正好是第类,分子又是否变化?把这个判断用两行中文写清,再继续。
提示 2 · 关键关系
当分子、分母都会变时,使用商法则,两部分都必须考虑;当分子不含正在改变的分数时,该分子的导数是什么?先分别写各自的未化简结果,保留指数与 。
如果商法则记不清,可先独立复习普通函数分式求导。这里不要直接猜概率形式的结论;本题要你证明的正是这一步如何从原定义得到。
提示 3 · 下一步与自检
在你已经写出的分式里,找出“某个指数除以公共分母”的组合,尝试用相应概率符号缩短表达式。一次只替换一组,避免下标被你一起改掉。
用依赖方向自检:只提高本类分数时,本类概率应朝哪个方向变?只提高竞争类分数时呢?再检查所有概率仍总和为1所带来的导数约束。这些检查能发现符号错误,但这里不列出最终分段导数。
Q4(b) · 对权重求导(p.4,5%)
计算 对权重向量 的导数。原题提示在概率对分数、分数对权重之间使用链式法则。
提示 1 · 切入点
(a)改变的是一个标量分数;这一问改变的是一组权重。先写出 有几项,并判断关于这组权重的梯度应该有几项。概率输出仍是一个数,不会因为权重是向量就变成一串概率。
沿着同一条依赖链看:权重先影响第个分数,分数再影响第个概率。先把两个箭头画出来,不要一上来重写整段softmax。
提示 2 · 关键关系
把 写成坐标相乘再相加,只挑一个权重分量求导,其余权重与输入都固定。先解释“这一个权重影响的是哪一项”,再把每个分量的结果排起来。
这个局部导数完成后,才接(a)已经求得的标量变化率。注意这里 是类别编号,权重里的坐标编号是另一个索引,别把类别数 与特征数 混成一个维度。
提示 3 · 下一步与自检
组合结果时问自己:一个标量乘一个向量后,形状应是什么?对照 ,检查方向与长度一致。若出现 项但权重本来有 项,回查你是否对错对象求导。
保留 与 两种情况,或明确说明你采用的统一记法。不要遗漏竞争类:公共分母意味着输出概率不仅依赖自己的权重。最终向量表达式仍由你写出。
Q4(c) · 交叉熵的梯度(p.4,10%)
对损失 关于 求导,证明原题给定的梯度表达式。
提示 1 · 切入点
先读损失里的求和:它对类别求和,当前题目仍只有一个样本,不是对一批样本求和。标签向量one-hot,意味着某一类有真实标签1,而不是只有那一类概率存在。
关于 求导时,公共分母使多个概率都依赖它。先保留损失的整个求和,对每一项检查依赖,不要未经推导就只留下下标那项。
提示 2 · 关键关系
挑求和中的一项,先对自然对数求导,再接(b)中相应的概率梯度。不要把 当成待学习参数;本题标签是固定数据。
之后再把 的项与其他项分开书写。此时宁可多留一行,也不要跳过负号、概率分母或标签因子。你已经有(a)(b)的局部结果,这一步的任务是正确组合它们,不是从头重新求softmax。
提示 3 · 下一步与自检
整理到仍含标签求和时,再使用one-hot标签所有分量之和为1的性质。先确认你的和到底覆盖所有类别,还是只覆盖排除了的那些,二者不能直接同写为1。
最后检查梯度是否与 同维度,以及式中是否仍明确对应固定样本的输入。还可用一次很小的权重扰动比较损失变化方向,作为独立数值自检。这里不提供原题最终梯度,也不替你完成最后合并。
原题 Q4(a)、Q4(c) 给定的目标式(可选查看)
Q4(a) 原题给定:
Q4(c) 原题给定:
补充 · 不看结果也能进行的过程检查(通识讲解;演示数据不属于原题)。
下面只检查你写的过程是否自洽,不提供本题系数、误差、更新后参数或最终导数。先完成自己的草稿,再按需要展开。
Q1 · 检查你是在训练还是在测试
把每个求和的样本来源标出来:求参数时是否混入测试行?画图横坐标是否排序,而散点仍保持各自输入标签配对?比较不同次数时,是否一直用同一套训练与测试数据?不要先看哪条曲线漂亮再倒改数据划分。
Q2 · 检查你究竟对哪个变量求导
在每一行左侧写清“固定哪些量、正在改变哪个量”。样本均值由数据决定,不随参数改变;截距是否被惩罚必须按题目原定义。若做了中心化替换,把替换后的变量再代回原预测式,检查预测是否保持一致。
Q3 · 检查一次更新的时间顺序
先把旧参数框起来;所有样本概率与梯度都应来自这一套旧参数。汇总后再统一更新。测试评价使用哪套参数、哪个阈值、怎样处理等于阈值的情形,分别标清;不能一边累计梯度一边偷偷改参数。
Q4 · 检查下标与对象,而不是猜最后形式
先标明每个下标是类别编号、特征编号还是样本编号。确认正在求导的量是一个分数、一个权重分量还是整条权重向量。遇到求和时逐项问“这一项是否也依赖所求变量”,再决定能否删去;维度检查应在化简前后各做一次。
补充:交卷前先做不揭晓答案的反向检查
以下只提示检验路径,不给本题结果;可在保留自己的草稿后逐项展开。
数值题:从输出回到原定义
不要只把结果与另一组四舍五入数字比较。把自己得到的参数代回原预测式,逐条重建预测,再按题目定义重算目标。矩阵实现与逐样本求和若不一致,先检查系数排列、标签配对、截距列与sum/mean约定。测试阶段是否又重新求了一次参数,也应单独核对。
证明题:挑一个边界条件试探你的结论
每当写出“唯一”“可逆”“最小”,指出自己使用的具体假设。尝试让某个特征列重复、让正则化参数退回无惩罚情况,看看推导哪一步需要重新讨论。边界检查用来找到遗漏条件,不是替代题目要求的一般证明。
梯度题:检查没有被改变的方向
若给所有类别分数加同一个常数,概率是否应该改变?用这个问题检查你对各类别偏导的整体关系。若程序更新顺序改变了答案,检查是否把一次同步更新不小心写成逐样本或逐参数顺序更新。
想清楚后再对照
先保存自己的过程,记下具体卡在哪一步。下面的入口会离开提示模式,显示完整推导与数值结果。
来源与证据
- 题目、分值、数据与公式:HW01-2026T1-题目.pdf(本地课件),PDF p.1–4;提交说明在 p.5。原件保留本地。
- 本页只提供辅助思考,不构成正式作答文件或提交记录。未读取同学答案,也未使用 2025 年题目。