【Math】July

调和平均数

调和平均数是平均数的一种,常用于计算速率、密度等具有“倒数”性质的场景。简单说,它是倒数的算术平均数的倒数。


定义与公式

对于一组正数 ( x_1, x_2, …, x_n ),调和平均数 ( H ) 的计算公式为:

[ H = \frac{n}{\frac{1}{x_1} + \frac{1}{x_2} + … + \frac{1}{x_n}} ]


直观例子:平均速度

假设你开车去一个地方,前半程时速 60 公里,后半程时速 40 公里(路程相等)。全程的平均速度不是简单的 (60+40)/2=50,而应该用调和平均数:

[ H = \frac{2}{\frac{1}{60} + \frac{1}{40}} = \frac{2}{\frac{2}{120} + \frac{3}{120}} = \frac{2}{\frac{5}{120}} = 48 \ \text{公里/时} ]

这是因为“平均速度 = 总路程 ÷ 总时间”,而时间与速度成反比,调和平均数正好能正确反映这种反比关系。


与其他平均数的对比

对于同一组正数,有严格的大小关系:

调和平均数 ≤ 几何平均数 ≤ 算术平均数

例如对 2 和 8:

  • 调和平均数:( 2 / (1/2 + 1/8) = 3.2 )
  • 几何平均数:( \sqrt{2 \times 8} = 4 )
  • 算术平均数:( (2+8)/2 = 5 )

常见使用场景

  • 平均速度(上面已经提到)
  • 平均密度:合金由等体积的两种金属混合,其平均密度是它们密度的调和平均数
  • 金融分析:计算定期定额投资的平均买入成本(比如定投每股花费)
  • 电阻并联:并联总电阻的倒数等于各电阻倒数之和,整体等效电阻就是各电阻的调和平均数除以电阻个数

平均数

我们来深入对比这三种最经典的平均数。它们在刻画数据的“中心趋势”时,侧重点完全不同。


算术平均数 (Arithmetic Mean)

最符合日常直觉的“平均”,即**“先求和,再均分”**。

  • 公式: [ AM = \frac{x_1 + x_2 + … + x_n}{n} ]

  • 本质:从加和关系出发。它回答的是:如果所有数据都相同,总和不变时,每个值是多少?

  • 典型场景:

    • 平均考试成绩、平均身高、月平均开销。
    • 适合数据间相互独立,直接累加有意义的场景。
  • 对极端值的反应:对极大值非常敏感。例如一组数里出现一个离群大数,平均值会被明显拉高。


几何平均数 (Geometric Mean)

刻画“平均增长率”或“平均倍数”,即**“先相乘,再开方”**。

  • 公式: [ GM = \sqrt[n]{x_1 \times x_2 \times … \times x_n} ]

  • 本质:从乘积关系出发。它回答的是:如果每期变化倍数相同,总增长倍数不变时,每期的固定倍数是多少?

  • 典型场景:

    • 投资组合的年化收益率(如:第一年涨10%,第二年跌5%)。
    • 几何学中的平均比例、复利计算。
    • 要求所有数据必须为正数。
  • 对极端值的反应:比算术平均数稳健,但同样会被极大值拉升,只是程度较小;极小值对其压制作用更大。


调和平均数 (Harmonic Mean)

处理**“单位量”中的倒数关系**,即**“倒数的算术平均的倒数”**。

  • 公式: [ HM = \frac{n}{\frac{1}{x_1} + \frac{1}{x_2} + … + \frac{1}{x_n}} ]

  • 本质:从分母变化出发。它回答的是:在总量固定的情况下(如总路程固定、总产量固定),衡量“平均速率”或“平均单位成本”应该是多少?

  • 典型场景:

    • 固定路程下的平均速度(去时60km/h,回时40km/h)。
    • 并联电路的总电阻、定投股票的平均买入成本。
    • 数据也必须为正,且特别受极小值的主导。

核心对比:数值大小关系

对于同一组正数,永远有: [ HM \le GM \le AM ] 等号成立的条件:所有数据完全相等。

这个不等式源于它们的计算逻辑:调和平均强调“小数的倒数很大”,拉低了整体;算术平均则平等对待大小数。


一个直观例子:{1, 4, 100}

  • AM = (1+4+100)/3 = 35.0 → 被100严重拉高
  • GM = ³√(1×4×100) = ³√400 ≈ 7.37 → 介于中间
  • HM = 3 / (1/1 + 1/4 + 1/100) = 3 / (1 + 0.25 + 0.01) = 3 / 1.26 ≈ 2.38 → 受1的微小值压制

怎么选?一张表总结

维度算术平均 (AM)几何平均 (GM)调和平均 (HM)
计算公式和 ÷ 个数乘积开 n 次方个数 ÷ 倒数和
核心关系加法乘法倒数(除法)
数据特征绝对量、无关联比率、速度、指数变化单位含量、密度、速率
敏感点对极大值敏感对极小值较敏感对极小值极度敏感
数值大小最大居中最小
经典误区平均收益率用算术价格指数不取对数算术平均算平均速度
数据要求可为任意实数必须全为正数必须全为正数且非零

简单记忆:“和用算术,乘用几何,倒数用调和。” 实际使用时,看清数据背后的物理或经济意义是“相加”还是“相乘”还是“相除”,就能选对平均数。

增长率

标准答案是:前一年(即基期/报告期的前一期)。

在统计学和数学中,增速比率(增长率)的标准计算公式为:

增长率 = (现期值 - 基期值) / 基期值 × 100%

这里的基期值就是用来作为参照的“前一年”(或上一期)的数据。


具体区分(以年度数据为例)

  • 同比增长率:基期是去年同季/同月。计算公式为 (今年 - 去年) / 去年。
  • 环比增长率:基期是上一季度/上个月。计算公式为 (本期 - 上期) / 上期。

为什么不用“后一年”? 如果用后一年做基数,算出来的指标实际上变成了**“前瞻增速”或“预测增长率”的倒数**,它衡量的是“未来值相对于当前值的超额比例”,与常规统计口径的“增速”含义相反,且不具备现实可比性。官方发布的经济数据(如GDP、CPI)全部以前一年或上一年为基数。


唯一容易混淆的特例

如果题目中提到**“以某年为基准(定基比)”,比如“以2020年为基数”,那么虽然2020年在前,但计算时你依然要拿2020年的数据**放在分母上,而不是拿2021年或2019年。始终记住:分母永远是你选定的那个“参照点”。

如果你是想问在Excel或编程中处理涉及“基期”的时间序列数据,需要我介绍具体的函数操作吗?我可以进一步说明。

隔板法

隔板法(Stars and Bars)是组合数学中一个非常重要的计数方法,主要用于解决把(n)个相同的物品分配到(k)个不同的盒子中的问题。它通过引入“隔板”的概念,将分配问题转化为组合数计算。

下面我将从核心思想、基本公式、常见变形、典型例题以及注意事项五个方面,为你详细介绍隔板法。

核心思想

想象一下,你有(n)个完全相同的物品(比如(n)个相同的球),把它们排成一行。现在,你想把这些物品分成(k)组(每组对应一个盒子)。为了区分不同的组,你可以在物品之间的空隙中插入(k-1)块隔板。

  • 物品:代表需要被分配的元素,它们被视为无差别的“*”。
  • 隔板:用于分隔不同盒子的边界。需要(k-1)个隔板来分成(k)个非空的组。
  • 空隙:(n)个物品排成一行,会产生(n+1)个空隙(包括两端)。但隔板法通常使用“内部空隙”还是“任意位置”?这取决于问题是允许空盒还是不允许空盒,下文会详细区分。

关键前提:

  1. 物品相同:球是无差别的。如果物品不同,则不能直接使用隔板法,需要先转化为相同物品或使用其他方法(如容斥原理)。
  2. 盒子不同:盒子是有标签的(比如编号1,2,3)。交换两个盒子的内容被视为不同的分配方案。

基本公式与两种核心情况

隔板法主要解决两种问题:不允许空盒 和 允许空盒。这是所有变形的基石。

情况1:不允许空盒(每组至少1个)

问题:把(n)个相同的物品分到(k)个不同的盒子中,要求每个盒子至少有一个物品,有多少种分法?

解法:

  • (n)个物品排成一行,它们之间有(n-1)个内部空隙(两个物品之间)。
  • 我们需要选择(k-1)个空隙插入隔板,将物品分成(k)个非空组。
  • 选择空隙的方法数就是组合数:(\binom{n-1}{k-1})。

公式: [ \text{方法数} = \binom{n-1}{k-1}, \quad \text{其中} n \ge k \ge 1 ]

情况2:允许空盒(每组可以为空)

问题:把(n)个相同的物品分到(k)个不同的盒子中,允许有的盒子为空,有多少种分法?

解法(常用技巧——增加虚拟物品):

  • 为了将“允许空盒”转化为“不允许空盒”的情况,我们可以先向每个盒子里预先放入1个虚拟物品。
  • 这样,我们就需要分配的总物品数变为(n + k)个((n)个真实 + (k)个虚拟),且每个盒子现在至少要有1个(即包含那个虚拟物品)。
  • 把(n+k)个相同物品分到(k)个盒子,每个盒子至少1个,方法数为(\binom{(n+k)-1}{k-1} = \binom{n+k-1}{k-1})。
  • 分配完后,再从每个盒子中拿走那个虚拟物品。由于虚拟物品是预先放好的,拿走不影响真实物品的分布。最终,有的盒子可能只剩下0个真实物品(即原来只含虚拟物品),实现了允许空盒。

公式: [ \text{方法数} = \binom{n+k-1}{k-1} ] 这个公式也等价于(\binom{n+k-1}{n})。

另一种理解: 把问题看作寻找方程(x_1 + x_2 + \dots + x_k = n)的非负整数解的个数,其中(x_i \ge 0)。其解的数量恰好为(\binom{n+k-1}{k-1})。

常见变形及处理方法

变形1:下界限制(每组至少某个特定数量)

问题:把(n)个相同物品分到(k)个不同盒子,要求第(i)个盒子至少(a_i)个物品((a_i)是给定正整数)。

解法:

  • 先给每个盒子分配其下界要求的数量,即减去(\sum a_i)个物品。
  • 令(n’ = n - \sum_{i=1}^k a_i),则问题转化为:将(n’)个相同物品分到(k)个盒子,允许空盒(因为下界已满足)。
  • 方法数为(\binom{n’ + k - 1}{k-1}),前提是(n’ \ge 0)。

变形2:上界限制(每组最多某个数量)

问题:把(n)个相同物品分到(k)个不同盒子,要求每个盒子最多(b)个物品。这时不能直接用隔板法,因为隔板法很难直接处理上界。

解法(用容斥原理):

  • 先计算无条件允许空盒的总数:(\binom{n+k-1}{k-1})。
  • 减去至少有一个盒子超过(b)(即(\ge b+1)个)的情况,这需要用到容斥原理,公式较复杂。

变形3:盒子相同(无序分组)

问题:把(n)个相同物品分到(k)个相同的盒子(即把整数(n)分成最多(k)个无序的正整数之和)。这时隔板法失效,因为隔板法依赖于盒子有标签。此类问题属于整数分拆(Partition),通常用动态规划或生成函数,没有简单的封闭公式。

典型例题

例题1:基本不允许空盒

求方程 (x_1 + x_2 + x_3 = 7) 的正整数解的个数。

解答: 这是(n=7, k=3),要求(x_i \ge 1)。方法数: [ \binom{7-1}{3-1} = \binom{6}{2} = 15 ]

例题2:基本允许空盒

求方程 (x_1 + x_2 + x_3 = 5) 的非负整数解的个数。

解答: (n=5, k=3),允许空盒。方法数: [ \binom{5+3-1}{3-1} = \binom{7}{2} = 21 ]

例题3:下界限制

把10个相同的球放入3个不同的盒子,要求第1个盒子至少2个,第2个至少1个,第3个至少3个。求方法数。

解答: 下界总和 = (2+1+3=6)。令(n’ = 10-6 = 4)。问题变为:将4个相同球放入3个不同盒子,允许空盒。 方法数: [ \binom{4+3-1}{3-1} = \binom{6}{2} = 15 ]

例题4:综合应用

某学校有8个名额分配给4个班级,每个班级至少1个名额,且名额相同,求分配方案数。

解答: (n=8, k=4),不允许空盒。 [ \binom{8-1}{4-1} = \binom{7}{3} = 35 ]

重点总结与注意事项

  1. 核心公式:

    • 不允许空盒:(\binom{n-1}{k-1})
    • 允许空盒:(\binom{n+k-1}{k-1})
  2. 应用条件:

    • ✅ 物品必须相同(如球、名额、相同的糖果)。
    • ✅ 盒子必须不同(如不同的班级、变量下标)。
    • ❌ 如果物品不同,则不能用隔板法(除非先视为相同再用其他原理调整)。
    • ❌ 如果盒子相同,隔板法无效,需要用整数分拆理论。
  3. 记忆技巧:

    • 不允许空盒:在(n-1)个空隙中选(k-1)个放板。
    • 允许空盒:通过添加(k)个虚拟物品转化为不允许空盒,得到(n+k-1)个空隙(实际上是通过线性变换推导)。
  4. 常见错误:

    • 混淆“允许空盒”和“不允许空盒”的公式。
    • 忘记检查下界条件是否满足(如(n < k)时不允许空盒的方案数为0)。
    • 误用于物品不同的分配问题(例如把不同的人分到不同的组,那是排列问题)。
  5. 与“分组分配”问题的区别:

    • 隔板法处理的是相同元素的分配。
    • 如果是不同元素,通常用斯特林数(盒子相同)或“每个元素独立选择盒子”的指数形式(盒子不同)。

希望这个详细介绍能帮助你全面掌握隔板法。如果想进一步了解容斥原理处理上界限制的具体步骤,或者想对比相同元素与不同元素分配问题的差异,我可以继续为你讲解。

容斥原理

容斥原理(Inclusion–Exclusion Principle)是组合数学中一个强大的计数工具,用于计算至少满足若干个条件之一的对象个数,或者反过来计算不满足任何条件的对象个数。它通过交替加减交集的大小,避免了重复计数。

下面我将从原理表述、公式推导、典型应用、与隔板法的结合、以及易错点等方面,详细介绍容斥原理。


基本思想与两集合情况

先从最简单的两个集合开始。

对于两个有限集合 (A) 和 (B),它们的并集大小: [ |A \cup B| = |A| + |B| - |A \cap B| ] 这很直观:相加时多算了 (A \cap B) 一次,所以要减去一次。

对于三个集合 (A, B, C): [ |A \cup B \cup C| = |A| + |B| + |C| - |A \cap B| - |A \cap C| - |B \cap C| + |A \cap B \cap C| ] 减多了两两交集,需再加回三个集合的交集。

由此推广到 (n) 个集合的一般形式。


一般公式

设 (A_1, A_2, \dots, A_n) 为有限集合,则:

[ \left| \bigcup_{i=1}^{n} A_i \right| = \sum_{i=1}^{n} |A_i| ;-; \sum_{1 \le i < j \le n} |A_i \cap A_j| ;+; \sum_{1 \le i < j < k \le n} |A_i \cap A_j \cap A_k| ;-; \cdots ;+; (-1)^{n-1} |A_1 \cap A_2 \cap \dots \cap A_n| ]

写成求和形式: [ \left| \bigcup_{i=1}^{n} A_i \right| = \sum_{\emptyset \neq J \subseteq {1,\dots,n}} (-1)^{|J|+1} \left| \bigcap_{i \in J} A_i \right| ]


补集形式(更常用)

很多时候我们想要计算不满足任何条件(即不属于任何 (A_i))的元素个数。设全集为 (U),则: [ \left| \overline{A_1} \cap \overline{A_2} \cap \cdots \cap \overline{A_n} \right| = |U| - \left| \bigcup_{i=1}^{n} A_i \right| ] 代入并集的表达式,得到: [ \left| \bigcap_{i=1}^{n} \overline{A_i} \right| = |U| ;-; \sum_{i} |A_i| ;+; \sum_{i<j} |A_i \cap A_j| ;-; \cdots ;+; (-1)^n |A_1 \cap \cdots \cap A_n| ]

这是最常用的容斥原理形式:从全集中减去至少满足一个条件的,加上至少满足两个条件的,减去至少满足三个条件的,……


原理的证明思路(归纳法)

对 (n) 归纳:

  • (n=1) 显然成立。
  • 假设对 (n-1) 成立,则 [ \left| \bigcup_{i=1}^{n} A_i \right| = \left| \bigcup_{i=1}^{n-1} A_i \right| + |A_n| - \left| \left( \bigcup_{i=1}^{n-1} A_i \right) \cap A_n \right| ] 而 (\left( \bigcup_{i=1}^{n-1} A_i \right) \cap A_n = \bigcup_{i=1}^{n-1} (A_i \cap A_n)),再用归纳假设即可。

另一种证明是考虑每个元素被计数的次数:若一个元素恰好属于 (m) 个集合,则它在公式中出现的次数为 (\sum_{k=1}^{m} (-1)^{k-1} \binom{m}{k} = 1),恰好一次。


典型应用场景

错排问题(Derangements)

(n) 个人写 (n) 张贺卡,每人随机拿一张,求没有人拿到自己贺卡的方案数。

设 (A_i) 表示第 (i) 个人拿到自己贺卡的事件。则错排数: [ D_n = n! - \binom{n}{1}(n-1)! + \binom{n}{2}(n-2)! - \cdots + (-1)^n \binom{n}{0}0! ] [ D_n = n! \sum_{k=0}^{n} \frac{(-1)^k}{k!} ]

整除问题(数的计数)

求 (1) 到 (N) 中能被 (a) 或 (b) 或 (c) 整除的数的个数。

设 (A_a = { x \in [1,N] : a \mid x }),则 (|A_a| = \lfloor N/a \rfloor),交集大小为 (\lfloor N / \mathrm{lcm} \rfloor),直接套公式。

不定方程整数解的上界限制

求方程 (x_1+x_2+\cdots+x_k = n) 的非负整数解中,满足 (x_i \le b_i) 的解的个数。

令全集 (U) 为所有非负整数解(无上界),个数为 (\binom{n+k-1}{k-1})。设 (A_i) 为违反第 (i) 个上界(即 (x_i \ge b_i+1))的解集。然后应用容斥原理,每个 (A_i) 可通过变量代换 (y_i = x_i - (b_i+1)) 转化为非负解计数。需注意多个条件同时违反时,减去相应的和。

多重组合问题(有限重复数)

从 (m) 种物品中取 (n) 个(可重复),但每种物品最多取 (r) 个,求组合数。

全集为可重复组合数 (\binom{n+m-1}{m-1})。设 (A_i) 表示第 (i) 种物品取了至少 (r+1) 个,用容斥。


与隔板法的结合:处理上界限制

隔板法本身只能处理下界(至少多少个)或非负解。当遇到上界条件(如 (x_i \le b))时,必须借助容斥原理。

典型问题: [ x_1 + x_2 + \cdots + x_k = n,\quad 0 \le x_i \le b \quad (b \text{ 为常数}) ]

解法步骤:

  1. 全集 (U):非负整数解个数 (T_0 = \binom{n+k-1}{k-1})。
  2. 设 (A_i) = { 解中 (x_i \ge b+1) }。对于任意 (s) 个下标组成的集合 (J),计算 (\left| \bigcap_{i \in J} A_i \right|):令每个 (x_i’ = x_i - (b+1) \ge 0),则方程变为 [ \sum_{i\notin J} x_i + \sum_{i\in J} (x_i’ + b+1) = n \quad\Longrightarrow\quad \sum_{i=1}^k x_i’ = n - s(b+1) ] 非负解个数为 (\binom{n - s(b+1) + k -1}{k-1}),前提是 (n - s(b+1) \ge 0);否则为0。
  3. 容斥公式: [ \text{答案} = \sum_{s=0}^{k} (-1)^s \binom{k}{s} \binom{n - s(b+1) + k -1}{k-1} ] (注意 (s=0) 对应全集,符号为正;从 (s=1) 开始为减)

例题:求 (x_1+x_2+x_3=5) 的非负整数解中,满足 (x_i \le 2) 的解的个数。

  • 全集:(\binom{5+3-1}{2}=\binom{7}{2}=21)。
  • (b=2),(b+1=3)。
  • (s=1):(\binom{3}{1}\binom{5-3+3-1}{2}=3\times\binom{4}{2}=3\times6=18)
  • (s=2):(\binom{3}{2}\binom{5-6+3-1}{2}=3\times\binom{1}{2}=3\times0=0)
  • (s=3):(\binom{3}{3}\binom{5-9+3-1}{2}=1\times\binom{-2}{2}=0)
  • 答案:(21 - 18 = 3)。验证:满足条件的解有 (2,2,1) 及其排列(3种),正确。

注意事项与常见错误

  1. 交集的计算:必须准确计算同时满足多个条件(即多个 (A_i) 的交集)的元素个数,通常通过变量代换转化为无限制问题。
  2. 符号规律:奇数个交集的项前面为负(在补集形式中:减去单个,加上双交,减去三交……)。可以记忆为:奇负偶正(当从全集出发时)或直接用公式。
  3. 条件独立性与计数:容斥不要求条件独立,但需要能够计算任意交集的基数。
  4. 应用到概率:容斥原理也适用于概率测度,形式相同。
  5. 无限集合:如果集合无限,则需确保级数收敛,但组合计数中通常有限。
  6. 与二项式定理的联系:有时容斥求和可简化为封闭形式,如错排数的生成函数。

更复杂的例子:多重限制与一般下界

若同时有下界 (l_i) 和上界 (u_i),先通过平移 (y_i = x_i - l_i) 转为下界为0,然后上界变为 (u_i - l_i),再应用上述容斥处理上界。


总结

情形使用工具
无限制非负整数解隔板法:(\binom{n+k-1}{k-1})
有下界(≥ a)先减去下界,再用隔板法
有上界(≤ b)容斥原理 + 隔板法
既有上界又有下界先平移下界,再用容斥
错排问题容斥原理经典应用
求多个集合的交、并、补容斥原理直接公式

容斥原理是组合计数的“瑞士军刀”,与隔板法结合能解决绝大多数线性方程整数解的约束计数问题。熟练掌握后,建议多练习包含上界、多组条件的题目,逐步体会如何将“至少违反一个条件”转化为变量代换。

如果需要进一步探讨容斥原理与生成函数的关系,或者求解更复杂的约束(如不同变量有不同的上界),我可以继续为你讲解。

模幂

模幂运算指的是计算 (a^b \pmod{m}) 的值,即先求 (a) 的 (b) 次方,再除以 (m) 取余数。直接计算 (a^b) 会导致数字极大(如 (2^{1000}) 有 302 位),因此需要边乘边取模的快速算法。

核心方法是模重复平方算法(也叫快速幂),它基于二进制展开指数 (b),时间复杂度仅为 (O(\log b))。

计算步骤(以 (3^{13} \mod 7) 为例):

  1. 将指数 (b=13) 转为二进制 (1101),对应位权 (8,4,1)。
  2. 初始化结果 (r=1),底数 (base = a = 3)。
  3. 从最低位开始处理二进制位:
    • 若该位为 1,则 (r = (r \times base) \mod m)。
    • 然后更新 (base = (base \times base) \mod m),准备下一位。
  4. 循环结束,(r) 即为结果。

快速手算表((3^1,3^2,3^4,3^8) 逐次平方并对 7 取模):

  • (3^1 = 3)
  • (3^2 = 9 \equiv 2)
  • (3^4 = 2^2 = 4)
  • (3^8 = 4^2 = 16 \equiv 2)

组合 (3^{13} = 3^8 \times 3^4 \times 3^1 \equiv 2 \times 4 \times 3 = 24 \equiv 3 \pmod{7})。

主要应用场景:

  • RSA 加密:核心运算就是大数的模幂。
  • 伪素数测试(如费马测试)。
  • 编程竞赛中处理大指数取模问题。

注意事项:

  • 模数 (m) 较大时,中间乘法可能溢出(如 (10^9 \times 10^9)),需要用 (O(1)) 的快速乘法或 128 位整数。
  • 指数为 0 时,结果为 (1 \mod m)(需处理 (m=1) 的特殊情况,结果为 0)。

如果你需要了解 RSA 中如何利用模幂实现加解密,或者想学习处理极大模数(如 (2^{64}))的防溢出技巧,我可以继续为你讲解。

结合律

你提到的“模幂运算符合结合律”,准确地说,是指模乘运算在模 (m) 下满足结合律,而模幂运算(即重复应用模乘)自然继承了这一性质。下面分两层解释。


模乘的结合律

定义模 (m) 下的乘法运算: [ x \otimes y = (x \times y) \bmod m ] 这里 (x \times y) 是普通整数乘法,再取模 (m)。

对于任意三个整数 (a, b, c),普通整数乘法满足结合律:((a \times b) \times c = a \times (b \times c))。
取模之后,因为取模运算保持乘法结果后再取模等价于先取模再相乘再取模,所以: [ (a \otimes b) \otimes c = ((a \times b) \bmod m) \times c \bmod m = (a \times b \times c) \bmod m ] [ a \otimes (b \otimes c) = a \times ((b \times c) \bmod m) \bmod m = (a \times b \times c) \bmod m ] 因此,模乘 (\otimes) 满足结合律:((a \otimes b) \otimes c = a \otimes (b \otimes c))。


模幂运算如何继承结合律

模幂运算 (a^b \bmod m) 定义为将 (a) 自乘 (b) 次,每次乘法后立即对 (m) 取模,即: [ a^b \bmod m = \underbrace{a \otimes a \otimes \cdots \otimes a}_{b \text{ 个 } a} ] 由于模乘 (\otimes) 是结合的,所以无论你用哪种顺序进行这些乘法(比如从左到右,或使用快速幂的分治顺序),最终结果都相同。

举例:计算 (3^4 \bmod 7)。

  • 按顺序:(((3\otimes3)\otimes3)\otimes3 = (9\bmod7=2)\otimes3\otimes3 = (2\otimes3=6)\otimes3 = 18\bmod7=4)。
  • 先平方再平方:((3\otimes3)\otimes(3\otimes3)=2\otimes2=4)。结果一致。

因此,模幂运算的计算过程可以任意加括号,不改变结果——这正是结合律的体现。


常见误解澄清

有时人们把“模指数运算中底数或指数可以提前取模”也归为结合律,但那是不同的性质:

  • 底数取模:((a \bmod m)^b \bmod m = a^b \bmod m)。这是因为模乘可以“吸收”底数中的多余倍数。
  • 指数取模(欧拉定理):当 (a) 与 (m) 互质时,(a^{b \bmod \varphi(m)} \bmod m = a^b \bmod m)。这不是结合律,而是指数模 (\varphi(m)) 的周期性。

这些性质与模乘的结合律一起,构成了快速幂算法和RSA等密码系统的理论基础。


总结

  • 模乘运算 ((x \times y) \bmod m) 满足结合律,因为普通整数乘法结合且取模是同态。
  • 模幂运算 (a^b \bmod m) 是模乘的重复应用,因此其计算顺序可任意重排,本质上也满足结合律(针对“乘法”操作而言)。
  • 快速幂算法正是利用了这种结合律,通过分治减少计算次数。

如果你对“为什么指数可以模 (\varphi(m))”或“快速幂的严格正确性证明”感兴趣,我可以进一步展开。

模运算

在模 (m) 的整数环 (\mathbb{Z}_m) 中,二元运算满足结合律的常见例子有:

模加法

定义:(a \oplus b = (a + b) \bmod m)
满足结合律:((a \oplus b) \oplus c = a \oplus (b \oplus c))

  • 因为整数加法本身满足结合律,取模不改变结合性。

模乘法

定义:(a \otimes b = (a \times b) \bmod m)
满足结合律:((a \otimes b) \otimes c = a \otimes (b \otimes c))

  • 理由同上:整数乘法结合,取模后仍保持。

其他从加法或乘法导出的运算

  • 模减法:(a \ominus b = (a - b) \bmod m) 可视为 (a \oplus (-b)),依然结合(因为加法结合且取负是单射)。
  • 模加法和模乘法的任意组合(如线性变换 (x \mapsto (ax + b) \bmod m))作为映射的复合时,复合运算结合,但这不是环上的二元运算。

不满足结合律的常见模运算

  • 模幂(作为二元运算):定义 (a \uparrow b = a^b \bmod m),则 ((a \uparrow b) \uparrow c = (a^b \bmod m)^c \bmod m),而 (a \uparrow (b \uparrow c) = a^{(b^c \bmod m)} \bmod m),两者一般不相等。例如取 (m=7, a=2, b=3, c=2):左边 ((2^3)^2=8^2=64 \equiv 1),右边 (2^{(3^2)}=2^9=512 \equiv 1),但巧合相等;换 (a=2,b=2,c=3):左边 ((2^2)^3=4^3=64\equiv1),右边 (2^{(2^3)}=2^8=256\equiv4),不等。所以不满足结合律。
  • 模除法(逆元运算)不是封闭二元运算(除以0无定义),但若限定在可逆元集合上,模乘法已包含逆元,仍满足结合律。

结论

在模 (m) 下,加法和乘法(以及它们的组合如减法)都是满足结合律的二元运算。模幂作为运算不满足结合律,因为它是指数运算而非乘法重复。

如果你想进一步了解模运算构成环(满足加法结合、乘法结合、分配律)的性质,我可以继续介绍。

模 n 除法

结论:不满足。

在模 (n) 运算中,“除法”的定义并不是实数范围内的四则运算除法,而是指**“乘以模逆元”**(即 (a \div b \equiv a \cdot b^{-1} \pmod{n}),前提是 (\gcd(b, n)=1))。

由于乘以逆元本质上还是“乘法”,而乘法是满足结合律的,你可能直觉上觉得除法也满足?但实际上,“除以一个数”和“乘以它的逆元”虽然在单次操作中等价,但多次连除时,结合律会破坏掉“逆元”的次序关系,导致结果不同。


严格的数学推导(为什么不等价)

设模数为 (n),我们考察结合律等式是否成立:

[ (a \div b) \div c \stackrel{?}{=} a \div (b \div c) ]

将其转化为乘法逆元形式:

  • 左边:((a \cdot b^{-1}) \cdot c^{-1} = a \cdot b^{-1} \cdot c^{-1})
  • 右边:(a \div (b \cdot c^{-1}) = a \cdot (b \cdot c^{-1})^{-1} = a \cdot b^{-1} \cdot c)
    (因为 ((c^{-1})^{-1} = c),且模乘法满足交换律)

为了让左右相等,需要: [ a \cdot b^{-1} \cdot c^{-1} = a \cdot b^{-1} \cdot c ] 约去公共项 (a \cdot b^{-1}),必须满足: [ c^{-1} \equiv c \pmod{n} ]

这等价于 (c^2 \equiv 1 \pmod{n})。这在模 (n) 下只对极少数特定值成立(例如 (c \equiv 1) 或 (c \equiv -1 \pmod{n}),或者在某些特殊模数如 (n=2) 时全部成立),但绝不是普遍成立的。


具体数值反例(一目了然)

取模数 (n = 5),令 (a = 1, b = 2, c = 2)。

  • 先算左边 ((a \div b) \div c):

    • (2) 在模 (5) 下的逆元是 (3)(因为 (2 \times 3 = 6 \equiv 1))。
    • (1 \div 2 = 1 \times 3 = 3)。
    • 再除以 (2):(3 \div 2 = 3 \times 3 = 9 \equiv 4)。
  • 再算右边 (a \div (b \div c)):

    • 括号内:(2 \div 2 = 2 \times 3 = 6 \equiv 1)。
    • (1 \div 1 = 1)。

因为 (4 \neq 1 \pmod{5}),所以结合律不成立。


运算本质的底层逻辑(为什么不能仅凭“乘法”推断)

你可能会想:“除以 (c)”不是等价于“乘以 (c^{-1})”吗?乘法不是结合的吗?

关键在于: 当你把 “(a \div (b \div c))” 转化为乘法时,括号内的除法变成了乘以 (c^{-1}),但括号外的除法是对“这个整体结果”再取逆,导致逆元的顺序发生了“翻转”:

  • 先算前两个:逆元是 (b^{-1} \cdot c^{-1})(两者都在分母)。
  • 先算后两个:内层取了一次逆,外层又取了一次逆,导致原来的 (c^{-1}) 翻转为 (c),跑到了分子上。

结论:除法本质上是“非结合运算”。这一点不仅限于模运算,在普通实数域中,((8 \div 4) \div 2 = 1),而 (8 \div (4 \div 2) = 4),除法同样不满足结合律。模 (n) 运算继承了这种非结合性。


补充提醒(模运算的“封闭性”陷阱)

另外,模 (n) 除法还有一个额外限制:除数必须与模数 (n) 互质(否则逆元不存在)。如果 (b) 或 (c) 不可逆,表达式本身在定义域外,结合律更是无从谈起。这一点也远不如普通整数/实数除法“随时可除”那么自由。

总结一句话:模 (n) 除法不满足结合律,处理多步模除时,务必加上括号按顺序计算,或者统一将所有“除以 (x)”提前转换为“乘以 (x^{-1})”后再用乘法结合律重新组合(但顺序依然重要)。

数列求和

等差数列和等比数列的求和公式如下:

等差数列

通项:( a_n = a_1 + (n-1)d )

求和公式(两种形式):

  • 已知首项 ( a_1 )、末项 ( a_n ): [ S_n = \frac{n(a_1 + a_n)}{2} ]
  • 已知首项 ( a_1 )、公差 ( d ): [ S_n = n a_1 + \frac{n(n-1)}{2}d ]

等比数列

通项:( a_n = a_1 \cdot q^{,n-1} )

求和公式(分情况):

  • 当 ( q = 1 ) 时: [ S_n = n a_1 ]
  • 当 ( q \neq 1 ) 时: [ S_n = a_1 \cdot \frac{1 - q^{,n}}{1 - q} = a_1 \cdot \frac{q^{,n} - 1}{q - 1} ]

无穷递减等比数列(( |q| < 1 )): [ S = \frac{a_1}{1 - q} ]

需要我帮你梳理一个推导过程,或者给几个典型例题练练手吗?

等比数列

等比数列求和公式最经典、最严谨的推导方法是错位相减法(也叫乘公比作差法)。下面我为你分步梳理整个逻辑过程。


写出前 n 项和

设等比数列的首项为 ( a_1 ),公比为 ( q )(( q \neq 0 )),前 ( n ) 项和为 ( S_n )。

[ S_n = a_1 + a_1q + a_1q^2 + \cdots + a_1q^{n-1} \quad \quad \text{(1)} ]


两边同时乘以公比 ( q )

将等式 (1) 的左右两边同时乘以 ( q ),得到:

[ qS_n = a_1q + a_1q^2 + a_1q^3 + \cdots + a_1q^{n} \quad \quad \text{(2)} ]

注意:此时等式 (2) 右边从第二项起,与等式 (1) 右边的第一项至倒数第二项是完全一致的。


错位相减(消去中间项)

用 (1) 式减去 (2) 式(即 ( S_n - qS_n )):

[ \begin{aligned} S_n - qS_n = &(a_1 + a_1q + a_1q^2 + \cdots + a_1q^{n-1}) \ &- (a_1q + a_1q^2 + a_1q^3 + \cdots + a_1q^{n}) \end{aligned} ]

观察右边,除了首项 ( a_1 ) 和末项 ( a_1q^{n} ),中间的所有项(( a_1q ) 到 ( a_1q^{n-1} ))全部相互抵消。

因此化简为: [ (1 - q)S_n = a_1 - a_1q^{n} ]


提取公因式并求解

提取右边的公因式 ( a_1 ): [ (1 - q)S_n = a_1(1 - q^{n}) ]

此时必须分类讨论(这是极易忽略的易错点):

  • 情况一:当 ( q \neq 1 ) 时
    等式两边同时除以 ( (1 - q) ),得到标准公式: [ S_n = \frac{a_1(1 - q^{n})}{1 - q} ] 等价形式(分子分母同乘 -1): [ S_n = \frac{a_1(q^{n} - 1)}{q - 1} ]

  • 情况二:当 ( q = 1 ) 时
    等比数列变为常数列(每一项都是 ( a_1 )),此时公式中的分母为 0,不能使用上式,直接求和: [ S_n = n \cdot a_1 ]


补充:另一种常用写法(已知末项时)

如果你已知末项 ( a_n = a_1q^{n-1} ),可以将公式变形为: [ S_n = \frac{a_1 - a_n \cdot q}{1 - q} \quad (q \neq 1) ] (推导:将 ( a_1q^{n} = (a_1q^{n-1}) \cdot q = a_n q ) 代入即可)


扩展:无穷递缩等比数列(当 ( |q| < 1 ))

当公比的绝对值小于 1 且 ( n ) 趋向无穷大时,( q^{n} \to 0 ),取极限得: [ S = \lim_{n \to \infty} \frac{a_1(1 - q^{n})}{1 - q} = \frac{a_1}{1 - q} ]


记忆口诀:乘公比,错位减,中间项全消失。核心技巧就是利用“错位”制造大量相同项,从而简化求和。如果你还想看如何用这个公式解具体的高考真题,我可以继续为你举例。

Licensed under CC BY-NC-SA 4.0
Last updated on Oct 12, 2026 21:16 CST
comments powered by Disqus
Built with Hugo
Theme Stack designed by Jimmy