同余方程组的一般形式是?
考点:同余方程组的形式(A1)。
解析:方程组 = 多个同余式同时成立:()。✅ 正确
排除法:无(判断题)。混淆点:与线性方程 不同——这里是"余数条件"组。
关联 · 中国剩余定理的表述(A4):定理对象。
中国剩余定理(CRT)处理的是哪种方程组?
考点:模互质的情形(A2)。
解析:CRT 处理模数两两互质的方程组——这是定理成立的前提。✅ 正确
排除法:无(判断题)。混淆点:模任意(非互质)需要推广的逐对合并(D 组)。
关联 · 非互质情形(D1):推广方向。
模数两两互质时,同余方程组的解在模多少下唯一?
考点:解的周期(A3)。
解析:互质时解在模 下唯一——解集是周期 的等差数列。✅ 正确
排除法:无(判断题)。混淆点:非互质时周期是 lcm(D4)。
关联 · 解的唯一性(A6):唯一性的含义。
中国剩余定理的结论是?
考点:中国剩余定理的表述(A4)。
解析:模两两互质 → 方程组恒有解且解模 唯一。✅ 正确
排除法:无(判断题)。混淆点:存在性 + 唯一性是定理的两半。
关联 · 解的存在性(C7):存在性保证。
《孙子算经》"物不知数"问题:一个数除以 3 余 2、除以 5 余 3、除以 7 余 2,这个数最小是?
考点:物不知数(A5)。
解析:《孙子算经》:除 3 余 2、除 5 余 3、除 7 余 2 → 最小解 23。✅ 正确
排除法:无(判断题)。混淆点:105 是周期、233 是 23+2×105、128 是另一错误值。
关联 · 物不知数构造(B7):CRT 构造。
判断题:CRT 解的唯一性是"模 意义下"的——所有解构成模 的一个同余类(解相差 的倍数)。
考点:解的唯一性(A6)。
解析:"唯一"是模 意义下—— 与 都算"同一个解"(同余类)。✅ 正确
排除法:无(判断题)。混淆点:答"唯一解是 23"不严谨,应说"模 105 余 23"。
关联 · 解的模(C4):唯一性范围。
CRT 构造解的三步骤是?
考点:构造三步骤(B1)。
解析:CRT 构造 = ① ② 与 ③ 。✅ 正确
排除法:无(判断题)。混淆点:三步骤顺序不能乱——先 M 再 M_i 再逆元。
关联 · 解的公式(B5):第③步公式。
模数 (两两互质),CRT 的总模数 是?
考点:总模数 M(B2)。
解析:模 3、5、7 的 。✅ 正确
排除法:无(判断题)。混淆点:M 是乘积不是 lcm(互质时两者相等)。
关联 · 解的模(C4):M 即解周期。
(模数 3、5、7),对应的 是?
考点:分量模数 M_i(B3)。
解析:。✅ 正确
排除法:无(判断题)。混淆点: 含除 外的所有因子——这是"抵消"的关键。
关联 · 构造验证(B6):抵消原理。
物不知数问题中,, 等于?
考点:逆元 t_i(B4)。
解析:,()→ 。✅ 正确
排除法:无(判断题)。混淆点:逆元按各 m_i 求,不是按 M。
关联 · 逆元的作用(F3):抵消系数。
CRT 的解的公式是?
考点:解的公式(B5)。
解析:——每项在"自己的模"下留 、在别的模下归零。✅ 正确
排除法:无(判断题)。混淆点:不是 、不是 。
关联 · 构造三步骤(B1):公式即第③步。
判断题:CRT 构造有效的原因——对第 个模数, 在 时被 整除( 含因子 )、在 时 ——代入第 个方程只剩 项。
考点:构造验证(B6)。
解析:模 下: 时 ( 含因子 )→ 项归零; 时 → 项 = 。✅ 正确
排除法:无(判断题)。混淆点:这是 CRT 正确性的完整论证。
关联 · 解的公式(B5):公式为何有效。
物不知数(模 3、5、7)的 CRT 构造:,代入模 105 得?
考点:物不知数构造(B7)。
解析:。✅ 正确
排除法:无(判断题)。混淆点:233 是构造原始和,取模后才是最小正解。
关联 · 物不知数输出(J1):代码版。
解 ,最小正整数解是?
考点:两方程合并(C1)。
解析:、 → 枚举/CRT 得 7。✅ 正确
排除法:无(判断题)。混淆点:22 是同余的更大解。
关联 · 两方程 CRT 代码(I1):代码版。
解 ,最小正整数解是?
考点:三方程计算(C2)。
解析:、、 → CRT 得 127。✅ 正确
排除法:无(判断题)。混淆点:,127 是 内的唯一解。
关联 · 三方程 CRT 输出(J2):代码版。
CRT 求出解 ,最小正整数解是?
考点:最小正整数解(C3)。
解析:——取模得最小正代表。✅ 正确
排除法:无(判断题)。混淆点:233 也是解但不"最小"。
关联 · 最小解(N3):代码版。
判断题:CRT 的全部解是 ( 整数)——一个解加减 仍满足所有方程。
考点:解的模(C4)。
解析:全部解 = ——加周期 不改变任何余数。✅ 正确
排除法:无(判断题)。混淆点:周期性是"模 M 唯一"的另一说法。
关联 · 解的周期性(N4):代码验证。
解 ——注意 3 与 4 互质,最小正整数解是?
考点:计算实例(C5)。
解析:、 → 枚举得 10(、)。✅ 正确
排除法:无(判断题)。混淆点:3 与 4 互质,可用 CRT 公式。
关联 · 两方程合并(C1):同法双题。
判断题:CRT 构造中的逆元 常用 exgcd 求解( 与 互质保证有解)。
考点:CRT 与 exgcd(C6)。
解析: 用 exgcd 求——互质保证逆元存在。✅ 正确
排除法:无(判断题)。混淆点:CRT 的"齿轮"是 exgcd。
关联 · exgcd 求逆元(M1):代码版。
判断题:模数两两互质时,同余方程组恒有解——存在性是 CRT 保证的,不需要额外条件。
考点:解的存在性(C7)。
解析:互质 → 恒有解——存在性由 CRT 保证,无需检查。✅ 正确
排除法:无(判断题)。混淆点:非互质才需要可解条件检查。
关联 · 模不互质时的条件(D1):条件的分野。
模数不互质时,两个方程 、 有解的条件是?
考点:模不互质时的条件(D1)。
解析:、 有解 ⇔ 。✅ 正确
排除法:无(判断题)。混淆点: 是充分不必要;条件本质是模 gcd 同余。
关联 · 矛盾方程组(D3):条件不满足即矛盾。
判断题:非互质两方程用"代入合并": 代入第二式解 ——得到模 lcm 的新方程。
考点:两方程合并(D2)。
解析:非互质合并 = 代入法: 代入第二式解 → 得到模 lcm 的新方程。✅ 正确
排除法:无(判断题)。混淆点:合并后模从 变 lcm。
关联 · 非互质两方程合并(K1):代码版。
的解是?
考点:矛盾方程组(D3)。
解析:(奇)与 (偶)矛盾 → 无解。✅ 正确
排除法:无(判断题)。混淆点:矛盾的判定 = 余数模 gcd 不同余。
关联 · 无解输出(K5):代码版。
判断题:非互质情形下,方程组(若有解)的解在模 下唯一——比乘积更紧。
考点:解的模为 lcm(D4)。
解析:非互质有解时,解模 唯一——比乘积更紧。✅ 正确
排除法:无(判断题)。混淆点:lcm(4,6) = 12 < 24 = 乘积。
关联 · lcm 输出(K4):代码版。
解 ,最小正整数解是?
考点:非互质实例(D5)。
解析:、 → 合并得 ,最小正解 10。✅ 正确
排除法:无(判断题)。混淆点:2 不满足()。
关联 · 非互质求解(K3):同法双题。
判断题:互质情形公式法一步到位;非互质情形需逐对合并并检查可解条件——后者是前者的推广。
考点:互质与非互质对比(D6)。
解析:互质公式法一步到位;非互质逐对合并 + 可解检查——后者是推广。✅ 正确
排除法:无(判断题)。混淆点:公式法是合并法的特例。
关联 · 通用解法(D7):统一策略。
处理任意(含非互质)同余方程组的通用策略是?
考点:通用解法(D7)。
解析:任意方程组 = 逐对合并(每步模变 lcm),中途无解即整体无解。✅ 正确
排除法:无(判断题)。混淆点:互质公式只是逐对合并的快车道。
关联 · 通用合并过程(K7):代码版。
CRT 的经典应用"大数运算分解"是?
考点:大数运算分解(E1)。
解析:模 分解成互质小模数分别算、CRT 合并——化整为零。✅ 正确
排除法:无(判断题)。混淆点:分解的依据是 CRT 的"唯一合并"。
关联 · 大数模分解(L1):代码版。
判断题:模数 非素数时,可分解 ,各算 再 CRT 合并——这是组合数取模的一般方法。
考点:组合数取模(E2)。
解析:模 非素数 → 分解 各算再 CRT 合并——组合数取模的一般法。✅ 正确
排除法:无(判断题)。混淆点:素数模直接逆元法(22 章),合数模走 CRT。
关联 · 组合数取模 CRT(L2):代码版。
判断题:( 很大)可分解模数分别快速幂、再 CRT 合并——各小模数计算更快更安全。
考点:快速幂分解(E3)。
解析: 分解模数分别快速幂再合并——小模数更快更安全。✅ 正确
排除法:无(判断题)。混淆点:与直接模 M 快速幂等价,但防溢出。
关联 · 快速幂分解(L3):代码版。
判断题:欧拉函数等数论函数可用 CRT 分解计算——互质分解后逐块算再合并。
考点:数论函数计算(E4)。
解析:欧拉函数等可用互质分解逐块算再合并(积性 + CRT)。✅ 正确
排除法:无(判断题)。混淆点:积性函数与 CRT 是数论的孪生工具。
关联 · 数论函数计算(L4):代码版。
判断题:CRT 与拉格朗日插值同构——"在若干互质模下分别给定取值,唯一确定模乘积的解"恰是"若干点定多项式"的数论版。
考点:CRT 与插值思想(E5)。
解析:CRT ≈ 数论版拉格朗日插值——"若干模下给定取值 → 唯一确定模乘积的解"恰似"若干点定多项式"。✅ 正确
排除法:无(判断题)。混淆点: 对应插值基函数。
关联 · CRT 与线性代数(G1):同构视角。
CRT 的典型应用场景是?
考点:应用场景总结(E6)。
解析:CRT 应用 = 大模数分解计算、组合数/快速幂取模、RSA-CRT 加速。✅ 正确
排除法:无(判断题)。混淆点:最短路/字符串/排序与 CRT 无关。
关联 · RSA-CRT 加速(G3):密码学应用。
判断题:模分解 ()后,""可由""与""唯一确定。
考点:模分解(F1)。
解析:(互质)→ ""由两个小余数唯一确定。✅ 正确
排除法:无(判断题)。混淆点:这是 CRT 的"翻译"方向。
关联 · 各自计算再合并(F2):分治流程。
判断题:分解模数的流程 = 各小模数下分别计算 → CRT 合并——分而治之。
考点:各自计算再合并(F2)。
解析:分解模数流程 = 各小模数计算 → CRT 合并——分而治之。✅ 正确
排除法:无(判断题)。混淆点:合并是最后一步,别漏。
关联 · 模分解(F1):同思想双题。
判断题:CRT 公式中 (逆元)的作用是"抵消其他分量"—— 使第 项在模 下正好留下 。
考点:逆元的作用(F3)。
解析: 让第 项在模 下正好留 、在其他模下归零——逆元是"抵消器"。✅ 正确
排除法:无(判断题)。混淆点: 是设计目标。
关联 · 构造验证(B6):抵消原理。
判断题: 与 互质(互质模数保证),故 恒可用 exgcd 求出。
考点:exgcd 求逆元回顾(F4)。
解析: 与 互质 → 恒可用 exgcd 求出。✅ 正确
排除法:无(判断题)。混淆点:互质是 CRT 中逆元存在的保障。
关联 · CRT 与 exgcd(C6):衔接。
CRT 求解 个方程的复杂度主要由什么决定?
考点:计算复杂度(F5)。
解析:CRT 主要代价 = 次求逆元,每次 → 总 。✅ 正确
排除法:无(判断题)。混淆点:不是 枚举——那是暴力。
关联 · 分解模数的优势(F6):效率来源。
判断题:分解模数的优势 = 小模数运算快、防溢出、可并行——大数难题化整为零。
考点:分解模数的优势(F6)。
解析:分解 = 小模数快、防溢出、可并行——大数难题化整为零。✅ 正确
排除法:无(判断题)。混淆点:优势以 CRT 合并为代价( 可忽略)。
关联 · 计算复杂度(F5):合并代价。
判断题:CRT 可视为环同构 (互质时)——数论版的"分解定理"。
考点:CRT 与线性代数(G1)。
解析:互质时环同构 ——数论版分解定理。✅ 正确
排除法:无(判断题)。混淆点:教学定位——理解 CRT 的"结构意义"。
关联 · CRT 的逆过程(G2):同构的两个方向。
判断题:CRT 的逆过程 = 已知 ,求它模各 的余数——直接取模即可(平凡方向)。
考点:CRT 的逆过程(G2)。
解析:逆过程( → 各 余数)= 直接取模——平凡方向。✅ 正确
排除法:无(判断题)。混淆点:CRT 难在正方向(合并),逆方向免费。
关联 · CRT 与线性代数(G1):同构双向。
判断题:RSA 解密用 CRT 加速:模 的解密拆成模 、模 两部分各算再合并——提速约 4 倍。
考点:RSA-CRT 加速(G3)。
解析:RSA 解密模 拆成模 、 各算再 CRT 合并——提速约 4 倍。✅ 正确
排除法:无(判断题)。混淆点:、 互质是 CRT 前提。
关联 · CRT 应用(E6):密码学应用。
判断题:CRT 思想可推广到多项式——模互质多项式的同余方程组有类似的合并公式(拉格朗日插值是特例)。
考点:多项式 CRT(G4)。
解析:CRT 推广到多项式——模互质多项式有同样合并公式,拉格朗日插值是其特例。✅ 正确
排除法:无(判断题)。混淆点:与 E5 呼应——插值即多项式 CRT。
关联 · CRT 与插值思想(E5):同构。
判断题:中国剩余定理最早见于《孙子算经》(物不知数),宋代秦九韶给出系统解法(大衍求一术)——早于西方数百年。
考点:历史与文化(G5)。
解析:《孙子算经》物不知数、秦九韶大衍求一术——中国剩余定理早于西方数百年。✅ 正确
排除法:无(判断题)。混淆点:CRT 名字里的"中国"名副其实。
关联 · 物不知数(A5):历史源头。
判断题:CRT 的核心思想 = "整体难题拆成互质分量分别解,再唯一合并"——分治思想在数论中的体现。
考点:综合总结(G6)。
解析:CRT 核心 = 整体难题拆成互质分量分别解、再唯一合并——分治在数论的体现。✅ 正确
排除法:无(判断题)。混淆点:与算法分治(19 章)思想同源。
关联 · 本章全部核心结论:章节收官。
判断题:模数不互质时直接套互质 CRT 公式会得到错误结果——必须先逐对合并或先判可解条件。
考点:模不互质误用公式(H1)。
解析:不互质时套互质公式 → 逆元可能不存在()→ 必错。✅ 正确
排除法:无(判断题)。混淆点:先判互质、再选方法(P3)。
关联 · 非互质误用(P3):错误示范。
判断题:CRT 公式算出 后忘了模 直接报 ——答案不唯一(233 与 23 同余),应取最小正整数解或明确模 。
考点:忘了模 M 取解(H2)。
解析:公式和 233 需模 105 取 23——报 233 丢了"最小正代表"要求。✅ 正确
排除法:无(判断题)。混淆点:233 也是解,但题目通常要最小正解。
关联 · 忘取模 M(P1):错误示范。
判断题: 是"模 "的逆元——若误算成"模 "的逆元,公式就错了。
考点:逆元求错(H3)。
解析: 是模 的逆元——误按模 求则公式失效。✅ 正确
排除法:无(判断题)。混淆点:每个 对应自己的 。
关联 · 逆元求错(P2):错误示范。
判断题:非互质合并时若中间同余式无解(如 ),整个方程组无解——漏判会继续算下去得到错误解。
考点:无解情形漏判(H4)。
解析:合并中间式无解()→ 整体无解——漏判继续算会得错误解。✅ 正确
排除法:无(判断题)。混淆点:可解检查(模 gcd 同余)必须每步做。
关联 · 无解漏判(P5):错误示范。
判断题:以下结论全部正确——"互质 CRT 恒有解且模乘积唯一;非互质需判 并逐对合并;解取模 (或 lcm)取最小正代表;逆元按各 求"。
考点:综合判断(H5)。
解析:四结论全对:互质恒有解且模乘积唯一;非互质判模 gcd 同余并逐对合并;解取模取最小正代表;逆元按各 求。✅ 正确
排除法:无(判断题)。混淆点:本章核心结论收官自查。
关联 · 本章全部核心结论:收官综合判断题。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 // 解 x ≡ 1 (mod 3), x ≡ 2 (mod 5):CRT 构造 05 int M = 3 * 5; 06 int M1 = M / 3, M2 = M / 5; // M1 = 5, M2 = 3 07 int t1 = 2; // 5^(-1) mod 3 = 2 08 int t2 = 2; // 3^(-1) mod 5 = 2 09 int x = (1 * M1 * t1 + 2 * M2 * t2) % M; 10 cout << x; 11 return 0; 12}
单选题:程序输出是?
考点:两方程合并输出(I1)。
解析:。正确答案 A。
实现要点:两方程 CRT = 直接套公式 。手算:。
排除法:B 忘了取模;C/D 无依据。
关联 · 两方程合并(C1):概念题代码化。
01#include <bits/stdc++.h> 02using namespace std; 03int exgcd(int a, int b, int &x, int &y) { 04 if (b == 0) { x = 1; y = 0; return a; } 05 int d = exgcd(b, a % b, y, x); 06 y -= a / b * x; 07 return d; 08} 09int main() { 10 int x, y; 11 exgcd(5, 3, x, y); // 求 5 模 3 的逆元 12 cout << ((x % 3) + 3) % 3; 13 return 0; 14}
单选题:程序输出是?
考点:逆元计算输出(I2)。
解析:,。正确答案 A。
实现要点:exgcd 求逆元 = 解 再规范化 x。手算:验证 。
排除法:B/C/D 无依据。
关联 · CRT 与 exgcd(C6):逆元来源。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 // x ≡ 1 (mod 3), x ≡ 2 (mod 5) 05 int M = 15; 06 int x = (1 * 5 * 2 + 2 * 3 * 2) % M; // 10 + 12 = 22 ≡ 7 07 cout << x; 08 return 0; 09}
单选题:程序输出是?
考点:CRT 求解输出(I3)。
解析:。正确答案 A。
实现要点:与 I1 同式。手算:逐项乘加取模。
排除法:B 是未取模;C/D 无依据。
关联 · 解的公式(B5):公式直接实现。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int x = 7; 05 cout << (x % 3 == 1 && x % 5 == 2 ? "YES" : "NO"); 06 return 0; 07}
单选题:程序输出是?(验证 7 是否满足 x≡1(mod 3)、x≡2(mod 5))
考点:验证输出(I4)。
解析:、 → YES。正确答案 A。
实现要点:验证 = 把解代回每个方程。手算:两个余数分别查。
排除法:B 是任一不满足;C/D 无依据。
关联 · 解验证(N2):验证三方程版。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 // x ≡ 1 (mod 3), x ≡ 2 (mod 5),M = 15 05 int M1 = 5, M2 = 3; 06 int t1 = 2, t2 = 2; 07 int x = (1 * M1 * t1 + 2 * M2 * t2) % ______; // 总模数 08 cout << x; 09 return 0; 10}
单选题:横线处应填入?(使输出为 7)
考点:两方程填空(I5)。
解析:总模数 15。正确答案 A。
实现要点:CRT 最后一步 % M。手算:。
排除法:B/C 是单模数;D 无依据。
关联 · 总模数 M(B2):填空版。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 // 解 x ≡ 7 (mod 15) 的全部解:7 + 15k 05 int x0 = 7, M = 15; 06 cout << x0 + M << " " << x0 - M; // 相邻两个解 07 return 0; 08}
单选题:程序输出是?
考点:解的模输出(I6)。
解析:、。正确答案 A。
实现要点:全部解 = ——相邻解相差 。手算:加减周期。
排除法:B 符号错;C/D 无依据。
关联 · 解的模(C4):周期性。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 // 物不知数:x ≡ 2 (mod 3), x ≡ 3 (mod 5), x ≡ 2 (mod 7) 05 int M = 105; 06 int x = (2 * 35 * 2 + 3 * 21 * 1 + 2 * 15 * 1) % M; // 140 + 63 + 30 = 233 ≡ 23 07 cout << x; 08 return 0; 09}
单选题:程序输出是?
考点:物不知数输出(J1)。
解析:。正确答案 A。
实现要点:物不知数 = 三方程 CRT 的教科书实例。手算:三组 相加。
排除法:B 忘了取模;C 是周期;D 无依据。
关联 · 物不知数(A5):概念题代码化。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 // x ≡ 3 (mod 4), x ≡ 2 (mod 5), x ≡ 1 (mod 7) 05 int M = 140; 06 // M1=35, t1=3;M2=28, t2=2;M3=20, t3=6 07 int x = (3 * 35 * 3 + 2 * 28 * 2 + 1 * 20 * 6) % M; // 315 + 112 + 120 = 547 ≡ 127 08 cout << x; 09 return 0; 10}
单选题:程序输出是?
考点:三方程 CRT 输出(J2)。
解析:。正确答案 A。
实现要点:三方程同公式。手算:验证 、、。
排除法:B 忘了取模;C/D 无依据。
关联 · 三方程计算(C2):概念题代码化。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 // x ≡ 2 (mod 3), x ≡ 3 (mod 5), x ≡ 2 (mod 7),M = 105 05 int M1 = 35, M2 = 21, M3 = 15; 06 int t1 = 2, t2 = 1, t3 = 1; 07 int x = (2 * M1 * t1 + 3 * M2 * t2 + 2 * M3 * t3) % ______; 08 cout << x; 09 return 0; 10}
单选题:横线处应填入?(使输出为 23)
考点:三方程填空(J3)。
解析:总模数 105。正确答案 A。
实现要点:与 J1 同式填空。手算:。
排除法:B/C/D 是单分量模数。
关联 · 总模数 M(B2):填空版。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int x = 23; 05 cout << (x % 3 == 2 && x % 5 == 3 && x % 7 == 2 ? "YES" : "NO"); 06 return 0; 07}
单选题:程序输出是?
考点:验证(J4)。
解析:23 满足三条件 → YES。正确答案 A。
实现要点:三方程验证 = 三个余数分别查。手算:。
排除法:B 是任一不满足;C/D 无依据。
关联 · 解验证(N2):同构题。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int M = 105; 05 int x = 23; 06 int cnt = 0; 07 for (int i = 0; i < 1000; i++) 08 if (i % 105 == x) cnt++; // 0~999 中模 105 余 23 的数 09 cout << cnt; 10 return 0; 11}
单选题:程序输出是?(0~999 中共 1000 个数,模 105 余 23 的个数)
考点:解的范围(J5)。
解析: 中模 105 余 23:23、128、…、968 → 10 个。正确答案 A。
实现要点:周期解计数 = 级别。手算:列出首尾。
排除法:B 漏首或尾;C/D 无依据。
关联 · 解的周期(A3):解集的分布。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 // x ≡ 1 (mod 2), x ≡ 2 (mod 3), x ≡ 3 (mod 5),M = 30 05 // M1=15, t1=1;M2=10, t2=1;M3=6, t3=1 06 int x = (1 * 15 * 1 + 2 * 10 * 1 + 3 * 6 * 1) % 30; // 15 + 20 + 18 = 53 ≡ 23 07 cout << x; 08 return 0; 09}
单选题:程序输出是?
考点:三方程另一例(J6)。
解析:。正确答案 A。
实现要点: 全为 1(各 )的简化情形。手算:验证 。
排除法:B 忘了取模;C 是周期;D 无依据。
关联 · 物不知数输出(J1):同法双题。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 // x ≡ 2 (mod 4), x ≡ 4 (mod 6):代入合并 05 // x = 2 + 4k ≡ 4 (mod 6) → 4k ≡ 2 (mod 6) → 2k ≡ 1 (mod 3) → k ≡ 2 (mod 3) 06 int x = 2 + 4 * 2; // 取 k = 2 07 cout << x; 08 return 0; 09}
单选题:程序输出是?(最小正整数解)
考点:非互质两方程合并(K1)。
解析: 代入 → → → → 。正确答案 A。
实现要点:非互质合并 = 代入法解 。手算:同余式两边同除 gcd 并同步缩模。
排除法:B/C/D 无依据。
关联 · 非互质情形(D1):概念题代码化。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int a1 = 1, m1 = 2, a2 = 0, m2 = 2; 05 // 判定:a1 与 a2 模 gcd(2,2)=2 是否同余? 06 int g = 2; 07 cout << (a1 % g == a2 % g ? "SOLVABLE" : "NO-SOLUTION"); 08 return 0; 09}
单选题:程序输出是?
考点:矛盾判定输出(K2)。
解析: → NO-SOLUTION。正确答案 A。
实现要点:可解判定 = 余数模 gcd 是否同余。手算:,1 与 0 模 2 不同余。
排除法:B 是可解;C/D 无依据。
关联 · 矛盾方程组(D3):概念题代码化。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 // x ≡ 1 (mod 4), x ≡ 3 (mod 6): 05 // x = 1 + 4k ≡ 3 (mod 6) → 4k ≡ 2 (mod 6) → 2k ≡ 1 (mod 3) → k ≡ 2 (mod 3) 06 int x = 1 + 4 * 2; 07 cout << x; 08 return 0; 09}
单选题:程序输出是?
考点:非互质求解(K3)。
解析: → → → 。正确答案 A。
实现要点:与 K1 同法。手算:验证 、。
排除法:B/C/D 无依据。
关联 · 非互质两方程合并(K1):同法双题。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int m = 4, n = 6; 05 cout << m * n / __gcd(m, n); // lcm(4, 6) 06 return 0; 07}
单选题:程序输出是?(非互质合并后解的模)
考点:lcm 输出(K4)。
解析:。正确答案 A。
实现要点:lcm = 乘积 ÷ gcd。手算:。
排除法:B 是乘积;C 是 gcd;D 无依据。
关联 · 解的模为 lcm(D4):概念题代码化。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 // x ≡ 1 (mod 2), x ≡ 2 (mod 4): 05 // x = 1 + 2k ≡ 2 (mod 4) → 2k ≡ 1 (mod 4)——2k 是偶数,不可能 ≡ 1 06 bool ok = false; 07 for (int k = 0; k < 2; k++) 08 if (2 * k % 4 == 1) ok = true; 09 cout << (ok ? "SOLVABLE" : "NO-SOLUTION"); 10 return 0; 11}
单选题:程序输出是?
考点:无解输出(K5)。
解析: 无解( 恒偶)→ NO-SOLUTION。正确答案 A。
实现要点:合并中间式无解即整体无解。手算:检查同余式奇偶性。
排除法:B 是漏判;C/D 无依据。
关联 · 无解漏判(P5):错误示范对照。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 // x ≡ a (mod m), x ≡ b (mod n):合并条件 05 int a = 2, m = 4, b = 4, n = 6; 06 int g = __gcd(m, n); 07 cout << (______ ? "SOLVABLE" : "NO-SOLUTION"); // 可解条件 08 return 0; 09}
单选题:横线处应填入?(使输出为 SOLVABLE——2 ≡ 4 (mod 2))
考点:合并填空(K6)。
解析:可解条件 a % g == b % g()。正确答案 A。
实现要点:非互质合并先判可解。手算:,。
排除法:B 反向;C/D 无依据。
关联 · 模不互质时的条件(D1):填空版。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 // 逐对合并:x ≡ 2 (mod 4) → 与 x ≡ 4 (mod 6) 合并 → x ≡ 10 (mod 12) 05 // → 与 x ≡ 1 (mod 5) 合并:x = 10 + 12k ≡ 1 (mod 5) 06 // → 12k ≡ -9 ≡ 1 (mod 5) → 2k ≡ 1 (mod 5) → k ≡ 3 (mod 5) 07 int x = 10 + 12 * 3; 08 cout << x; 09 return 0; 10}
单选题:程序输出是?(x ≡ 2 (mod 4)、x ≡ 4 (mod 6)、x ≡ 1 (mod 5) 的最小正整数解)
考点:通用合并过程(K7)。
解析: 与 合并 → → → → 。正确答案 A。
实现要点:逐对合并 = 每步代入解 k、模变 lcm。手算:验证 46 满足三条件。
排除法:B/C/D 无依据。
关联 · 通用解法(D7):概念题代码化。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 // 求 100 mod 15:分解 15 = 3 × 5 05 int r3 = 100 % 3, r5 = 100 % 5; 06 // CRT 合并:x ≡ 1 (mod 3), x ≡ 0 (mod 5) → x = 10 07 int x = (1 * 5 * 2 + 0 * 3 * 2) % 15; 08 cout << x; 09 return 0; 10}
单选题:程序输出是?(100 mod 15 = 10)
考点:大数模分解(L1)。
解析:、 → CRT 合并得 10。正确答案 A。
实现要点:模分解 = 各小模取余 + CRT 合并。手算:验证 。
排除法:B/C/D 无依据。
关联 · 大数运算分解(E1):概念题代码化。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 // C(5,2) = 10;求 C(5,2) mod 6:分解 6 = 2 × 3 05 // mod 2 = 0,mod 3 = 1;CRT 合并 → x ≡ 4 (mod 6) 06 int r2 = 10 % 2, r3 = 10 % 3; 07 int x = (0 * 3 * 1 + 1 * 2 * 2) % 6; // M1=3,t1=1;M2=2,t2=2 08 cout << x; 09 return 0; 10}
单选题:程序输出是?(10 mod 6 = 4)
考点:组合数取模 CRT(L2)。
解析:、 → 合并得 4。正确答案 A。
实现要点:合数模组合数 = 分解 + 各算 + CRT。手算:验证 。
排除法:B 忘了取模;C/D 无依据。
关联 · 组合数取模(E2):概念题代码化。
01#include <bits/stdc++.h> 02using namespace std; 03long long qpow(long long a, long long n, long long p) { 04 long long r = 1; 05 a %= p; 06 while (n) { 07 if (n & 1) r = r * a % p; 08 a = a * a % p; 09 n >>= 1; 10 } 11 return r; 12} 13int main() { 14 // 2^10 mod 15:分解 15 = 3 × 5 15 long long r3 = qpow(2, 10, 3), r5 = qpow(2, 10, 5); 16 cout << r3 << " " << r5; 17 return 0; 18}
单选题:程序输出是?(:mod 3 = 1、mod 5 = 4)
考点:快速幂分解(L3)。
解析:()、()。输出 1 4。正确答案 A。
实现要点:幂取模可分解模数分别算。手算:找小循环节。
排除法:B 顺序反;C/D 无依据。
关联 · 快速幂分解(E3):概念题代码化。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 // φ(15) = φ(3) × φ(5)(3 与 5 互质,积性) 05 int c3 = 0, c5 = 0; 06 for (int i = 1; i <= 3; i++) if (__gcd(i, 3) == 1) c3++; 07 for (int i = 1; i <= 5; i++) if (__gcd(i, 5) == 1) c5++; 08 cout << c3 * c5; 09 return 0; 10}
单选题:程序输出是?
考点:数论函数计算(L4)。
解析:、 → 。正确答案 A。
实现要点:互质积性 + CRT 分解。手算:互质数统计。
排除法:B 是 15;C/D 无依据。
关联 · 数论函数计算(E4):概念题代码化。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 // x ≡ 2 (mod 3), x ≡ 3 (mod 5):CRT 合并 05 int M1 = 5, M2 = 3; 06 int t1 = 2, t2 = 2; 07 int x = (______) % 15; // a1·M1·t1 + a2·M2·t2 08 cout << x; 09 return 0; 10}
单选题:横线处应填入?(使输出为 8——2·5·2 + 3·3·2 = 20 + 18 = 38 ≡ 8)
考点:应用填空(L5)。
解析:2 * M1 * t1 + 3 * M2 * t2 = 。正确答案 A。
实现要点:CRT 公式的逐项形式 。手算:验证 、。
排除法:B 漏乘 t;C 漏乘 M;D 无依据。
关联 · 解的公式(B5):填空版。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 // 求 2026 mod 77:分解 77 = 7 × 11 05 int r7 = 2026 % 7, r11 = 2026 % 11; 06 // 2026 = 7×289 + 3 → r7 = 3;2026 = 11×184 + 2 → r11 = 2 07 // CRT:x ≡ 3 (mod 7), x ≡ 2 (mod 11),M = 77 08 // M1 = 11, t1 = 11^(-1) mod 7 = 2;M2 = 7, t2 = 7^(-1) mod 11 = 8 09 int x = (3 * 11 * 2 + 2 * 7 * 8) % 77; // 66 + 112 = 178 ≡ 24 10 cout << x; 11 return 0; 12}
单选题:程序输出是?(2026 mod 77 = 24)
考点:综合应用(L6)。
解析:、 → CRT:。正确答案 A。
实现要点:完整流程 = 分解取余 + 求逆元 + 合并。手算:验证 。
排除法:B 忘了取模;C/D 无依据。
关联 · 大数运算分解(E1):综合实例。
01#include <bits/stdc++.h> 02using namespace std; 03int exgcd(int a, int b, int &x, int &y) { 04 if (b == 0) { x = 1; y = 0; return a; } 05 int d = exgcd(b, a % b, y, x); 06 y -= a / b * x; 07 return d; 08} 09int main() { 10 int x, y; 11 exgcd(11, 7, x, y); // 求 11 模 7 的逆元 12 cout << ((x % 7) + 7) % 7; 13 return 0; 14}
单选题:程序输出是?(11 ≡ 4,4 的逆元是 2——)
考点:exgcd 求逆元(M1)。
解析:,()。正确答案 A。
实现要点:exgcd 解 后规范化。手算:验证 。
排除法:B 是原值;C/D 无依据。
关联 · exgcd 求逆元(J 组 22 章 K2):衔接。
01#include <bits/stdc++.h> 02using namespace std; 03long long qpow(long long a, long long n, long long p) { 04 long long r = 1; 05 a %= p; 06 while (n) { 07 if (n & 1) r = r * a % p; 08 a = a * a % p; 09 n >>= 1; 10 } 11 return r; 12} 13int main() { 14 cout << qpow(7, 9, 11); // 7 模 11 的逆元 = 7^(11-2) = 7^9 15 return 0; 16}
单选题:程序输出是?(7 × 8 = 56 ≡ 1 (mod 11),故逆元为 8)
考点:费马求逆元(M2)。
解析:()。正确答案 A。
实现要点:素数模用费马 。手算:验证 。
排除法:B 是底数;C/D 无依据。
关联 · 费马求逆元(J 组 22 章 K1):衔接。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 // CRT 中 t1 = M1^(-1) mod m1:35^(-1) mod 3 05 // 35 ≡ 2 (mod 3),2 的逆元是 2 06 cout << 2; 07 return 0; 08}
单选题:程序输出是?
考点:逆元在 CRT 中(M3)。
解析: → 。正确答案 A。
实现要点:CRT 的 先化简再求逆。手算:。
排除法:B/C/D 无依据。
关联 · 逆元的作用(F3):概念题代码化。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int M = 105; 05 int m[3] = {3, 5, 7}; 06 for (int i = 0; i < 3; i++) cout << M / m[i] << " "; // M_i = M / m_i 07 return 0; 08}
单选题:程序输出是?
考点:M_i 计算(M4)。
解析:、、。正确答案 A。
实现要点:——去掉自己的因子。手算:逐个除。
排除法:B 是模数本身;C/D 无依据。
关联 · 分量模数 M_i(B3):概念题代码化。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 // t_i = M_i^(-1) mod m_i 05 // t1: 35 ≡ 2 (mod 3) → 2^(-1) = 2 06 // t2: 21 ≡ 1 (mod 5) → 1^(-1) = 1 07 // t3: 15 ≡ 1 (mod 7) → 1^(-1) = 1 08 cout << 2 << " " << 1 << " " << 1; 09 return 0; 10}
单选题:程序输出是?
考点:t_i 计算(M5)。
解析:(35≡2、2⁻¹=2)、、。正确答案 A。
实现要点:逐分量化简求逆。手算:、。
排除法:B/C/D 无依据。
关联 · 逆元 t_i(B4):概念题代码化。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 // CRT 全流程:x ≡ 2 (mod 3), x ≡ 3 (mod 5), x ≡ 2 (mod 7) 05 int M = 105; 06 int x = 0; 07 x += 2 * 35 * 2; // a1·M1·t1 08 x += 3 * 21 * 1; // a2·M2·t2 09 x += 2 * 15 * 1; // a3·M3·t3 10 x %= M; 11 cout << x; 12 return 0; 13}
单选题:程序输出是?
考点:综合计算(M6)。
解析:三组 累加取模 → 23。正确答案 A。
实现要点:CRT 全流程代码化。手算:逐项累加。
排除法:B 忘了取模;C/D 无依据。
关联 · 物不知数输出(J1):同构题。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 // x ≡ 1 (mod 3), x ≡ 2 (mod 5), x ≡ 3 (mod 7) 05 // M = 105, M1 = 35, t1 = 2;M2 = 21, t2 = 1;M3 = 15, t3 = 1 06 int x = (1 * 35 * 2 + 2 * 21 * 1 + 3 * 15 * 1) % 105; // 70 + 42 + 45 = 157 ≡ 52 07 cout << x; 08 return 0; 09}
单选题:程序输出是?
考点:方程组求解(N1)。
解析:。正确答案 A。
实现要点:三方程 CRT。手算:验证 。
排除法:B 忘了取模;C 差 1;D 无依据。
关联 · 三方程 CRT 输出(J2):同法双题。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int x = 52; 05 cout << (x % 3 == 1 && x % 5 == 2 && x % 7 == 3 ? "YES" : "NO"); 06 return 0; 07}
单选题:程序输出是?
考点:解验证(N2)。
解析:52 满足三条件 → YES。正确答案 A。
实现要点:三余数分别验证。手算:、、。
排除法:B 是任一不满足;C/D 无依据。
关联 · 验证(J4):同构题。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 // x ≡ 157 (mod 105) → 最小正整数解 05 int x = 157 % 105; 06 cout << x; 07 return 0; 08}
单选题:程序输出是?
考点:最小解(N3)。
解析:。正确答案 A。
实现要点:取模得最小正代表。手算:。
排除法:B 忘了取模;C 是周期;D 无依据。
关联 · 最小正整数解(C3):概念题代码化。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int x0 = 23, M = 105; 05 // 检查 23、128、233 是否都满足物不知数三条件 06 int ok = 0; 07 for (int k = 0; k < 3; k++) { 08 int x = x0 + k * M; 09 if (x % 3 == 2 && x % 5 == 3 && x % 7 == 2) ok++; 10 } 11 cout << ok; 12 return 0; 13}
单选题:程序输出是?
考点:解的周期性(N4)。
解析:23、128、233 都满足 → 3 个全通过。正确答案 A。
实现要点:周期 内的解代表 + 平移都成立。手算:逐个验证。
排除法:B/C/D 无依据。
关联 · 解的模(C4):概念题代码化。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 // 求 1000 mod 21:分解 21 = 3 × 7 05 int r3 = 1000 % 3, r7 = 1000 % 7; 06 // r3 = 1, r7 = 6;CRT:x ≡ 1 (mod 3), x ≡ 6 (mod 7) 07 // M1 = 7, t1 = 7^(-1) mod 3 = 1;M2 = 3, t2 = 3^(-1) mod 7 = 5 08 int x = (1 * 7 * 1 + 6 * 3 * 5) % 21; // 7 + 90 = 97 ≡ 13 09 cout << x; 10 return 0; 11}
单选题:程序输出是?(1000 mod 21 = 13)
考点:应用综合(N5)。
解析:、 → CRT 合并得 13。正确答案 A。
实现要点:分解 + CRT 全流程。手算:验证 。
排除法:B 忘了取模;C/D 无依据。
关联 · 综合应用(L6):同法双题。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 // 求 12345 mod 12:分解 12 = 3 × 4 05 int r3 = 12345 % 3, r4 = 12345 % 4; 06 // r3 = 0, r4 = 1;CRT:x ≡ 0 (mod 3), x ≡ 1 (mod 4) 07 // M1 = 4, t1 = 4^(-1) mod 3 = 1;M2 = 3, t2 = 3^(-1) mod 4 = 3 08 int x = (0 * 4 * 1 + 1 * 3 * 3) % 12; // 9 09 cout << x; 10 return 0; 11}
单选题:程序输出是?(12345 mod 12 = 9)
考点:大数计算(N6)。
解析:、 → CRT 得 9。正确答案 A。
实现要点:与 N5 同法、模 12。手算:验证 。
排除法:B/C/D 无依据。
关联 · 大数模分解(L1):同法双题。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 // x ≡ 2 (mod 3), x ≡ 3 (mod 5), x ≡ 2 (mod 7) 05 int m[3] = {3, 5, 7}, a[3] = {2, 3, 2}; 06 int M = 105; 07 int x = 0; 08 for (int i = 0; i < 3; i++) { 09 int Mi = M / m[i]; 10 int ti = 1; 11 while (______) ti++; // Mi * ti ≡ 1 (mod m[i]) 的最小 ti 12 x += a[i] * Mi * ti; 13 } 14 x %= M; 15 cout << x; 16 return 0; 17}
单选题:横线处应填入?(使输出为 23)
考点:CRT 构造填空(O1)。
解析:暴力求逆元条件 Mi * ti % m[i] != 1。正确答案 A。
实现要点:循环找最小 使 。手算:验证各分量。
排除法:B 判断错误条件;C 是范围条件;D 反向。
关联 · 构造三步骤(B1):填空版。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int M = 105; 05 int m1 = 3, m2 = 5, m3 = 7; 06 int M1 = ______, M2 = ______, M3 = ______; // M_i = M / m_i 07 cout << M1 << " " << M2 << " " << M3; 08 return 0; 09}
单选题:横线处应填入?(使输出为 35 21 15)
考点:M_i 填空(O2)。
解析:M / m1, M / m2, M / m3。正确答案 A。
实现要点:。手算:105/3 等。
排除法:B 是模数;C 乘错;D 减错。
关联 · M_i 计算(M4):填空版。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int Mi = 35, mi = 3; 05 int t = 1; 06 while (Mi * t % mi != 1) t++; 07 cout << t; // 35^(-1) mod 3 08 return 0; 09}
单选题:程序输出是?
考点:逆元填空(O3)。
解析:暴力循环得 2。正确答案 A。
实现要点: 的最小 t。手算:t=1 时 35≡2≠1,t=2 时 70≡1。
排除法:B/C/D 无依据。
关联 · 逆元 t_i(B4):填空版。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int a[3] = {2, 3, 2}; 05 int Mi[3] = {35, 21, 15}; 06 int t[3] = {2, 1, 1}; 07 int M = 105; 08 int x = 0; 09 for (int i = 0; i < 3; i++) x = (x + ______) % M; // 累加 a_i·M_i·t_i 10 cout << x; 11 return 0; 12}
单选题:横线处应填入?(使输出为 23)
考点:求和填空(O4)。
解析:a[i] * Mi[i] * t[i]。正确答案 A。
实现要点:CRT 求和项 = 三因子乘积。手算:验证累加取模得 23。
排除法:B 是加法;C 漏 a;D 漏 M。
关联 · 解的公式(B5):填空版。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 // x ≡ 2 (mod 4), x ≡ 4 (mod 6):判定可解 05 int a = 2, m = 4, b = 4, n = 6; 06 int g = __gcd(m, n); 07 if (______) { // 可解条件 08 cout << "SOLVABLE"; 09 } else { 10 cout << "NO-SOLUTION"; 11 } 12 return 0; 13}
单选题:横线处应填入?(使输出为 SOLVABLE)
考点:非互质合并填空(O5)。
解析:a % g == b % g。正确答案 A。
实现要点:可解条件 = 余数模 gcd 同余。手算:。
排除法:B 反向;C/D 无依据。
关联 · 模不互质时的条件(D1):填空版。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int x = 23; 05 cout << (______ ? "YES" : "NO"); // 物不知数三条件验证 06 return 0; 07}
单选题:横线处应填入?(使输出为 YES)
考点:验证填空(O6)。
解析:三条件与式 x % 3 == 2 && x % 5 == 3 && x % 7 == 2。正确答案 A。
实现要点:验证 = 所有方程同时成立。手算:逐个取余。
排除法:B 是或;C 是硬编码;D 无依据。
关联 · 解验证(N2):填空版。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 // 100 mod 15:分解 15 = 3 × 5 05 int r3 = 100 % 3, r5 = 100 % 5; 06 // CRT 合并(x ≡ r3 (mod 3), x ≡ r5 (mod 5)) 07 int x = (r3 * 5 * 2 + r5 * ______) % 15; // M2 = 3, t2 = 2 08 cout << x; 09 return 0; 10}
单选题:横线处应填入?(使输出为 10)
考点:应用填空(O7)。
解析:3 * 2(M2 × t2)。正确答案 A。
实现要点:第二分量 = 。手算:验证合并得 10。
排除法:B 分量错;C 漏 t;D 无依据。
关联 · 大数模分解(L1):填空版。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int x = 2 * 35 * 2 + 3 * 21 * 1 + 2 * 15 * 1; // 错误:忘了 % 105 05 cout << x; 06 return 0; 07}
单选题:程序输出是?(未取模的原始和——不是最小解)
考点:忘取模 M(P1)。
解析:原始和 233——不是最小正解(应模 105 得 23)。正确答案 A。
实现要点:CRT 最后必须 % M。手算:。
排除法:B 是取模后;C/D 无依据。
关联 · 忘了模 M 取解(H2):错误示范。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 // 错误:t1 应按模 3 求(35 ≡ 2 → 逆元 2),误按模 105 求 05 int t1_wrong = 2; // 此处演示:若误算 35^(-1) mod 105 将无解(gcd(35,105)≠1) 06 int t1 = 2; 07 cout << (t1 * 35 % 3 == 1 ? "t1-OK" : "t1-BAD"); 08 return 0; 09}
单选题:程序输出是?(正确的 t1=2 验证:2 × 35 = 70 ≡ 1 (mod 3))
考点:逆元求错(P2)。
解析:正确 验证 → t1-OK。正确答案 A。
实现要点:逆元按 求——误按 M 求会因 根本无逆元。手算:验证。
排除法:B 是错误 t;C/D 无依据。
关联 · 逆元求错(H3):错误示范。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 // 错误:模 4 与 6 不互质,直接套互质 CRT 公式 05 // M = 24, M1 = 6, "t1 = 6^(-1) mod 4"——gcd(6,4)=2,逆元不存在! 06 cout << "invalid"; 07 return 0; 08}
判断题:模不互质时互质 CRT 公式中的逆元可能根本不存在(gcd(M_i, m_i) ≠ 1)——直接套公式必然出错,必须先逐对合并。
考点:非互质误用(P3)。
解析:模 4、6 不互质, 与 不互质 → 逆元不存在 → 公式失效。✅ 正确
实现要点:套互质公式前必须检查 。手算:。
排除法:无(判断题)。混淆点:逆元不存在不是小错——公式整体崩塌。
关联 · 模不互质误用公式(H1):错误示范。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 int x = 23, M = 105; 05 // 错误:以为唯一解是 23,忘了 128、233… 都是解 06 // 正解:x = 23 + 105k(k 整数) 07 cout << (128 % M == x ? "MORE-SOLUTIONS" : "ONLY-ONE"); 08 return 0; 09}
单选题:程序输出是?(128 与 23 同余模 105——解不止一个)
考点:解范围错(P4)。
解析:——128 也是解,"唯一解是 23"的说法错误。正确答案 A。
实现要点:解集是模 M 的同余类,回答要带"模 M"。手算:。
排除法:B 是误解唯一性;C/D 无依据。
关联 · 解的唯一性(A6):错误示范。
01#include <bits/stdc++.h> 02using namespace std; 03int main() { 04 // x ≡ 1 (mod 2), x ≡ 2 (mod 4):漏判可解条件直接合并 05 // x = 1 + 2k ≡ 2 (mod 4) → 2k ≡ 1 (mod 4):无解 06 // 若不检查继续算 k = (1 - ...)/2 会得到错误"解" 07 bool ok = false; 08 for (int k = 0; k < 2; k++) 09 if ((1 + 2 * k) % 4 == 2) ok = true; 10 cout << (ok ? "HAS" : "NONE"); 11 return 0; 12}
单选题:程序输出是?
考点:无解漏判(P5)。
解析:遍历确认 无解 → NONE——漏判会继续算出错误"解"。正确答案 A。
实现要点:非互质合并必须先判可解。手算: 无解(偶 ≠ 奇)。
排除法:B 是漏判结果;C/D 无依据。
关联 · 无解情形漏判(H4):错误示范。
判断题:以下结论全部正确——"互质 CRT 公式需要逆元存在(互质保证);非互质必须先判 ;解集是模 (或 lcm)的同余类;合并过程中无解则整体无解"。
考点:综合判断(P6)。
解析:四结论全对:互质公式需逆元存在(互质保证);非互质先判模 gcd 同余;解集是模 M(或 lcm)同余类;合并中途无解即整体无解。✅ 正确
实现要点:本章四大核心结论收官自查。手算:逐条对照本章代码。
排除法:无(判断题)。混淆点:互质/非互质两套路径的条件切换是本章精髓。
关联 · 本章全部核心结论:收官综合判断题。