AGMC 数学竞赛高中组 2026.2 二试参赛解答
下面是零音对第五届 AGMC 数学竞赛高中组 2026.2 二试部分的一些解答. 这里的解答与零音向主办方提交的解答有一些出入,主要是做了一些严谨性和准确性上的修改,但与官方答案在许多题目上有显著不同,在一些题目的处理上较官方答案更为灵活. 零音应当确保下述解答的正确性,但仍望读者以审慎的心态阅读.
这次的题目比起章鱼杯来讲友善很多,但零音因为太久没碰数学,从而早已生疏,提起笔来不知道该如何. 2026 年 11 月末,零音要踏上自己的第一场 CMC 征程了,可现在的零音还没有开始准备,被 CTF 和网络安全「耽误」太久了. 印象中喜好数学的旧日的 神楽坂 零音 啊,希望你不会为现在的零音而感到遗憾吧.
Problem 11
如果一个数位不含 的正整数 的各数位顺序无论如何排列,总能被另一个正整数 整除,则我们称这样的正整数 是能被 「绝对整除」的.
例如, 能被 绝对整除, 能被 绝对整除.
- 求能被 绝对整除的最小正整数.
- 求所有的正整数 ,使得存在能被 绝对整除的正整数.
能被 63 绝对整除的最小正整数
一个正整数可以被 绝对整除,等价于该正整数的任意排列都可以被 和 整除. 其中,被 整除仅取决于数位和,即数位和是 的倍数;但被 整除则依赖于排列.
考虑可被 绝对整除的正整数 ,任取其中两个数位 ,将它们排在相邻的位置,再调换它们,得到的两个数都应当被 整除. 假设这两个排列分别为 和 ,且 在第一个排列中右侧还有 个数位,于是两个数的差为
须有
因为 ,所以必然有 . 遍历 ,从而只有 或 时条件满足. 这就是说, 的所有数字除以 的余数必须完全相同.
记 为含 个 的数. 若所有数位模 都同余于 ,则任意排列模 都同余于 . 因此,绝对整除的条件恰为 ,以及数位和是 的倍数.
当 时, 模 的余数依次为 . 所以,若 ,只能有 ,也就是所有数位均为 ;但此时数位和 不是 的倍数. 因而符合条件的数至少有 位.
对于 位数,若包含数字 ,其余数位只能为 或 . 设有 个 ,则数位和为 ,由 和 得 . 将数位从小到大排列便得到 . 它确实符合条件,而任何不含 的 位数都比它大. 因而所求最小值是
选手解答允许提交题目脚本,下面的 C++ 程序也可以枚举验证这一结果:
#include <bits/stdc++.h>using namespace std;
int main() { auto repunit_mod7 = 0; // repunit(k) mod 7 for (int k = 1; ; ++k) { repunit_mod7 = (repunit_mod7 * 10 + 1) % 7; string best = "";
for (int r = 0; r <= 6; ++r) { // For absolute divisibility by 7, all digits must be congruent mod 7. // r=0 => only digit 7 (0 not allowed). r=1,2 have two digits: r and r+7. int d1 = (r == 0) ? 7 : r; int d2 = (r == 1 || r == 2) ? r + 7 : -1;
// Condition for divisibility by 7: either r==0 or repunit(k)≡0 (mod 7). if (r != 0 && repunit_mod7 != 0) continue;
string candidate; if (d2 == -1) { if ((d1 * k) % 9 != 0) continue; candidate.assign(k, char('0' + d1)); } else { // sum = k*d1 + 7*t, where t is count of d2 int mod = (k * d1) % 9; int t0 = (-4 * mod) % 9; // inverse of 7 mod 9 is 4 if (t0 < 0) t0 += 9; int t = t0; // The fewest larger digits give the smallest number. if (t > k) continue; candidate.assign(k - t, char('0' + d1)); candidate.append(t, char('0' + d2)); }
if (best.empty() || candidate < best) { best = candidate; } }
if (!best.empty()) { cout << best << "\n"; return 0; } }}可绝对整除的正整数 n
假设存在符合条件的、不含 的正整数 ,使得 的任意排列都是 的倍数. 显然 不能是 的倍数,因为 的各数位不能为 . 下面我们对 分两种情况考虑.
必要性
首先考虑这样的 ,它有至少 2 个相异的数字 和 . 我们构造这样两个排列 、,即它们仅在最后两个数位上对调,从而因为有 和 ,则必须有 整除它们的差:
因为 ,所以 ;又 ,从而 不可能被 或 整除. 因此 既不能是 的倍数,也不能是 的倍数.
其次考虑 ,其中 ,即 的所有数位都相同. 因为 的末位是 ,它不含素因子 或 ,所以 中的因子 和 只能由 贡献. 而 最多含有 个因子 ()或 个因子 (),所以 且 , 也不能是它们的倍数.
综上,我们证明了符合条件的 不能是 的倍数,从而证明了必要性.
充分性
仅考虑纯数字数的 . 下面我们证明:所有不是 倍数的 都存在被它整除的不含 的纯数字数 .
设 ,其中 为非负整数且 . 由 知 不能同时大于 ;由 和 又有 和 .
由 Euler 定理,因为 从而必存在 使得
而 (含 个 ).
- 倘若 含有因子 ,此时 ,即 . 选取 和 ,由 即得 .
- 倘若 不含 ,此时 ,所以 . 选取 ,由 保证了 在 内. 设 ,此时 和 ,从而 .
这些纯数字数的所有排列均相同,从而若它们被 整除,则它们被 绝对整除. 从而我们证明了充分性.
Problem 13
记 , , 是三个在有限个数上分布的随机变量,满足
设 ,求
的取值范围. 注: 指随机变量 的数学期望, 指随机变量 的方差.
确定期望的最小值
设 ,则 . 从而
由 和方差条件,得
又因为交叉项的期望均为 ,所以
我们使用下面的初等不等式:若 ,且 ,则对任意正整数 ,
事实上,设三个数中符号不同的那个绝对值为 ,另外两个绝对值为 (其中 ),则 化为
这是 时由凸性得到的二元不等式.
对 应用于 ,并令 (此处 是随机变量),再用 在 上的凸性和 ,可得
下面说明这个下界可以取到. 以相等概率取六个三元组
显然三个随机变量的期望均为 ,方差均为 ,且两两乘积的期望均为 . 对每个结果, 是 的一个排列,因此目标值为 . 所以 的下界确实可以取到.
特别地,当 时, 直接说明目标恒为 ;当 时,最小值为 .
证明没有上界(n 大于等于 2)
设定 相互独立且同分布. 令 ,并令每个变量以概率 取正值 ,以概率 取负值 . 取
则 且 ;独立性又保证 . 在 中只保留事件 ,得到
当 且 时,上式趋于 ,所以目标期望没有上界.
最后,目标期望关于联合分布是线性的. 将上面达到最小值的六点分布与任意一个目标值大于给定数值的上述分布按适当比例混合,仍然满足题设的全部条件,并且目标值可以连续地取遍两者之间的区间. 因此,结合无上界性,取值范围为
Problem 14
牡丹打算给橘子学院的官网设计一个图案. 官网的背景是一个 的方格表, 其中 . 牡丹打算在每个方格里填上 或 . 作为伊布粉丝的牡丹希望在水平, 竖直, 对角线方向上的五个连着的格子能够读出尽量多的 单词. 设在 的方格表中 单词数的最大可能值是 . 求证:
注:下界是 分. 本题你如果证明了不同的上界, 将会得到部分分值. 假设你的二次项系数为 , 得分如下:
| 的值 | |||||
|---|---|---|---|---|---|
| 得分 |
下界
给出下界的构造:对方格表中的格子 ,当且仅当 时填入 ,否则填入 .
取一个距离方格表边界至少 的 ,以它为中心,横着和竖着读均可以读到 . 在主对角线方向上,与它相距为 和 的格子的坐标和与 的差为 或 ,模 均不为 ,所以这些格子上均为 ,也构成了 . 副对角线上的格子坐标和恒定,因而对应字母全为 ,不能形成 .
这样的 一共有 个(边界附近的格子只有 个),每个这样的 可以作为中心产生 个单词,而且不同中心、不同方向产生的单词不同. 因此
即
上界(官方答案)
GPT-6.1 Sol 阅读了官方 Solution 后整理了这份上界做法. 官方答案的核心是「加权计数」(discharging):给每个单词的各个格子分配权重,再在局部重新转移权重. 为简化叙述,先忽略距离边界为常数的格子. 这些格子只有 个,每个格子至多参与有限个单词,因此最后只会贡献 的误差.
固定一个方向,把这一方向上的格子看成一条直线. 直接观察长度为 的 ,有:
- 在一个固定方向上,一个 至多被两个 包含. 如果它确实被两个包含,那么由两个单词的中心都是 可知,它附近距离不超过 的某些格子必须是 .
- 如果一条直线上出现连续三个 ,那么两端的 在该方向上至多属于一个 . 如果出现形如 的三个 ,中间的 在该方向上也至多属于一个 .
- 如果一个 在某个方向距离 或 的位置还有另一个 ,那么这个 不可能作为该方向上 的中心.
这些观察分别对应 官方解答 中的断言 、、:第一条说明一个 总共至多属于 个单词;而一个 至多作为四个方向的中心.
分配初始权重
给每个 单词分配总权重 ,其中中心的 分得 ,四个 各分得 . 于是每个单词分出的权重为
如果格子 被 个单词包含,则它的初始权重为
所有格子的初始权重之和,恰好就是 单词总数.
四方向成词的 V
考虑一个四个方向都能组成 的 ,其初始权重是 ,周围的局部形状可以画成:
图中四个标出的 是中心 在水平、竖直方向距离 的格子. 对每一个这样的 ,把它的权重减少 ,再给这四个 各增加 . 这是守恒的,因为
于是这个特殊 的权重变为
另一方面,由上面的三个观察,图中每个被增加权重的 至多属于 个单词,而且至多从两个这样的特殊 收到增加量. 因而它的权重至多为
高权重的 E
现在看参与单词数很多的 .
如果一个 被 个单词包含,那么四个方向上都恰好有两个单词. 由三个观察可以核查出:它附近必然出现四个可以接收转移的 . 局部上有两种互为对称的排列,但两种排列都可以进行如下守恒转移:
从这个 的权重中减去
并分别给两个 增加 ,给另外两个 增加 . 因此这个 的新权重为
如果一个 被 个单词包含,那么四个方向中至少有三个方向各贡献两个单词. 因而至少可以找到三个被迫出现的 ,给它们各增加 ,同时从这个 减去
此时这个 的权重至多为
逐类检查所有格子
还剩下的格子只需要利用上面的局部观察作一个简单的分类. 对于普通的 ,如果它没有从「四方向成词的 」处收到权重,那么它至多被 个单词包含,权重至多为 . 如果它确实收到这种转移,那么由观察 ,它至多被 个单词包含,并且至多收到两次 ,于是由 仍然不超过 .
对于 ,四方向都成词的情况已经处理过. 其他情况下,三个观察还给出以下两个上界:
- 若它参与至多 个单词,则它至多收到四次 ,所以权重至多为
- 若它收到某次 的转移,则它至多参与 个单词,并且至多收到四次 ,所以权重至多为
这里第二条的关键是:收到 的 与转移它的 相距 格,因此由观察 ,它在相应方向上不能再作为中心成词;其余方向的局部排列再结合观察 、,就得到至多两个单词的结论. 四方向成词的 不会收到 ,因为它在水平、竖直方向距离 的 不可能是上面参与 个单词的高权重 .
因此,经过上述守恒转移后,每个格子的权重都不超过 . 由于总权重没有改变,得到
结合前面的构造,最终有
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!



