Ran Wei/数学系列
English
计算机科学与人工智能的数学基础 — Ran Wei

计数、组合数学与有限概率

根据结果的区别建立计数模型。推导选择公式,处理重叠与重复对象,并在明确抽样规则之后计算有限概率。

8 小时4 个时段3 个实验12 道练习与 2 道拓展10 道自测题

完成后你能够

  • 选择加法或乘法规则,明确不交与分支假设。
  • 推导不同及重复对象的排列组合数。
  • 依据可区别性与约束正确使用隔板法。
  • 应用容斥、补集计数与抽屉原理。
  • 在明确均匀模型下计算有限概率,区分概率与保证。

开始之前

模块 03–04:有限集合、积、双射、分类证明与归纳。解释同一结果为何可能被多种表示重复计数。实验需基础 Python,无需包。

目录

学习计划

8 小时

时间包含练习,是估计值;可按需要拆分时段。可选拓展练习额外需要 25 分钟。进度保存在当前浏览器,中英文版本共享。

1

计数必须符合结果的区别

十条记录选三条用于评估,若结果是无序子集,有 120 种;若三条分别担任第一、第二、第三审核人等不同角色,有 720 种。输入看似相同,结果区别不同。计数公式只对明确模型正确。

先问结果包含什么、顺序是否重要、同一对象能否重复、不同构造是否代表同一结果,再用加法、乘法、双射与补集证明公式。概率还需要抽样规则,有限集合不自动均匀。

回忆检查:构造小笛卡尔积、列幂集、解释双射与分类证明。按需复习集合和证明。计数是非负整数,本模块只讨论有限结果;后续概率更详细区分概率与频率。

2

加法、乘法与决策树

加法规则计数不交选项:A、B 不交时 ∣A∪B∣=∣A∣+∣B∣|A\cup B|=|A|+|B|。竖线这里是有限基数,不是绝对值。重叠成员会被加两次,必须分成真正不交情况或在第 5 节修正。

乘法规则用于每个第一选择都有相同数量后续选择的阶段。第一阶段 a 种,各有 b 个允许延续,路径数 ab;独立选项集是笛卡尔积基数。计数阶段并不自行断言概率独立,它描述允许构造树;概率独立是抽样模型额外性质。

分支数量不同应相加,不能假定共同因子。两个任务各允许三位工人,一个只允许一位,共七种任务—工人配对,不是九。若每任务都允许三人,乘法才是另一个正确模型。

例题详解
四位二进制串

结果是四个有序位置,每位允许零或一,允许值不受其他位置限制,树叶数 2⋅2⋅2⋅2=162\cdot2\cdot2\cdot2=16。允许重复,0011 与 1100 不同。要求恰好两个一则限制为较小结果集,不再计全部十六。

三位二进制决策树根逐次选择零或一,叶为 000 到 111 八个有序串。每位置二选一,三位置共八叶01010100000011010001111000101111001111
图 5.1

三位二进制选择树有八叶。每条根到叶路径代表完整有序串,共用前缀是中间选择,不是额外结果。

双射把难计集合一一对应到易计集合。须验证每个允许结果恰好一个表示,每个允许表示都产生结果。遗漏或重复使对应不能证明计数相等。第 4 节隔板法是例子。

构造计数也需范围明确。叶应是完整结果,不是部分选择。若丢弃顺序后不同路径变同一结果,叶计数会过计无序模型。因此有序选择树不能未经调整就计子集。

不选择任何位置有一个空序列,不是零个。零阶段的空乘积为一;实际某阶段没有可选项则所有构造失败,含零因子的积为零。这两种“空”不同。

CS 决策路径描述配置、串、分配与搜索空间。空间大小不等于每个算法耗时,算法可利用结构或只检查部分。AI 数据划分取决于记录是否不同、组是否具名、是否要求同主体记录同组。任意记录子集公式不会自动尊重主体约束。

检验理解

两种不交任务类型分别三与五个任务,每任务允许两位工人,共多少配对?一任务只允许一人时如何?

查看答案

原来 (3+5)⋅2=16(3+5)\cdot2=16;减少一个分支选择后十五。原共同因子不再适用于每任务。

3

排列与重复对象

从 n 个不同对象无放回选 r 个有序对象:

P(n,r)=n(n−1)⋯(n−r+1)=n!(n−r)!,0≤r≤n.P(n,r)=n(n-1)\cdots(n-r+1)=\frac{n!}{(n-r)!},\qquad0\le r\le n.

各位置可选数逐次减一。阶乘是至 n 的正整数积,0!=10!=1。全排列有 n!,选择零个有一个空结果,r>n 无放回则零,阶乘公式只声明于允许范围。

例题详解
有序角色与重复抽取

A、B、C 填两个具名位置,无放回为 AB、AC、BA、BC、CA、CB,共六。可放回则增加 AA、BB、CC,共九,一般 nrn^r。同一对象可占多个位置,与不同对象碰巧标签相同不同。

标签相同且不可区别时,不同具名排列可表示同一标签串。A、A、B 只有 AAB、ABA、BAA 三种。暂给两个 A 命名得到六,每个标签串恰好两个表示,所以除共同倍数给 3!/2!=33!/2!=3。

一般 N 个对象、k 类标签次数 n1,…,nkn_1,\ldots,n_k,总和 N,完整标签排列数为 N!/(n1!⋯nk!)N!/(n_1!\cdots n_k!)。分子计暂时具名对象,各同标签内部交换不改变标签串,每个串有相同内部交换积。固定次数与完整排列是前提。

不能随意除一个对称因子,须检查每结果表示数量相同。A、A、B 的部分二项选择中 AA 有一个具名位置构造,AB 有两个。三构造除猜测二并不得到正确的两个结果。

不同的含义取决于问题。同类别两记录通常仍是不同记录,交换具名角色改变记录结果,即使标签串不变。只观察类别会合并多个记录选择;转向概率前必须分开底层结果与表示。

放回有序公式 nrn^r 也要求每位 n 个允许选项。后续依赖先前时,应按实际分支计。密码禁止重复或必须含数字引入约束,n! 与 nrn^r 不自动处理,先定义构造再选公式。

边界检查 r=0、1、n、r>n 可揭错误。全标签相同的 N 对象只有一串,N!/N!=1N!/N!=1。得到零或 N! 表示区别模型不同或有建模错误。

检验理解

四不同记录标签 A、A、B、B,有多少完整记录顺序与不同标签串?为何两答案都可正确?

查看答案

记录 4!=244!=24,标签 4!/(2!2!)=64!/(2!2!)=6,每标签串隐藏四个记录顺序,两者计不同结果集。

4

组合、二项式恒等式与子集

无序 r 元子集是组合,数为二项式系数:

(nr)=n!r!(n−r)!,0≤r≤n.\binom nr=\frac{n!}{r!(n-r)!},\qquad0\le r\le n.

每个不同对象的 r 子集恰有 r! 个有序排列,因此将 P(n,r)P(n,r) 除此共同数,每子集一次。这是等表示倍数论证,不是脱离模型的公式。基本组合不保留顺序且禁止重复。

例题详解
十记录选三

评估子集不分位置。有序构造 10⋅9⋅8=72010\cdot9\cdot8=720,每子集出现六次,故 720/6=120720/6=120。若三位置不同职责,则除法会丢真实区别,正确仍 720。

顺序被遗忘后的子集AB 与 BA、AC 与 CA、BC 与 CB 分别合并;每子集两表示。有序表示无序结果AB, BA{A, B}AC, CA{A, C}BC, CB{B, C}
图 5.2

{A,B,C} 选二时,AB 与 BA 同为 {A,B}。每二元子集两顺序,六有序结果变三子集。

补集把 r 子集双射到 n−r 子集,故 (nr)=(nn−r)\binom nr=\binom n{n-r},用固定 n 元全集。(n0)=(nn)=1\binom n0=\binom nn=1 分别计空与全;n>0 时不表示它们是同一对象。

帕斯卡恒等式区分一个具名 x:r 子集或不含 x,有 (n−1r)\binom{n-1}r;或含 x,其他成员有 (n−1r−1)\binom{n-1}{r-1}。两情况不交且穷尽,故

(nr)=(n−1r)+(n−1r−1).\binom nr=\binom{n-1}r+\binom{n-1}{r-1}.

n≥1 时将负选择数或超过非负上标的二项系数定义为零,就包含边界。分类证明解释恒等式与递推,不只是约掉阶乘。

二项式定理连接子集与代数:

(a+b)n=∑r=0n(nr)an−rbr.(a+b)^n=\sum_{r=0}^n\binom nr a^{n-r}b^r.

n 个因子中,恰 r 个位置取 b、其余取 a,有 (nr)\binom nr 个位置子集产生该单项式。零次幂两边一,用空乘积。这里 a、b 是可交换标量;矩阵顺序有意义,需额外条件。

取 a=b=1,得 2n=∑r(nr)2^n=\sum_r\binom nr,按不交子集大小计幂集,连接模块 03 的选入/不选入。两个有依据的方法计同一集合称双重计数证明。

两具名组中每记录恰属一组,选 r 决定补组。固定大小训练、验证、测试三组用多项式计数而非单个组合数;主体、时间与资格限制又减少允许划分。正确无约束数不自动是应用数。

连续均匀无放回选择后丢弃顺序可生成均匀子集:每有序序列等权,每子集恰 r! 个序列,合并权重相同。两性质都需要。若某阶段偏好某记录,即使总返回 r 个不同记录,也可使子集有偏。应把“随机”改成明确机制再赋概率。

普通集合不记录次数:{A,A,B} 与 {A,B} 同集。多重集保留两个 A、一个 B,可用次数元组或排序标签列表表示。探索器用双括号表示多重集,与子集花括号区别。规范排序去顺序却保留重复;再转集合会丢另一区别并改变计数。把表示作枚举键前先检查是否符合结果定义。

交互演示

切换顺序重要/不重要及可重复/不可重复。对象 A 到 H,探索器同时给精确计数和有限样例。n=3、r=2 时分别六有序不同、三子集、九有序重复、六无序多重集。

检验理解

用双射解释 (54)=(51)\binom54=\binom51,并按位置给 (a+b)5(a+b)^5 中 a2b3a^2b^3 系数。

查看答案

每四元子集恰遗漏一个,补集双射。三 b 位置有 (53)=10\binom53=10,系数十。

5

重复、隔板法与约束

n 个相同任务给 k 位具名工人,即非负整数元组 (x1,…,xk)(x_1,\ldots,x_k) 和为 n。任务不可区别、工人可区别、允许零,数为

(n+k−1k−1),n≥0, k≥1.\binom{n+k-1}{k-1},\qquad n\ge0,\ k\ge1.

隔板法(stars and bars)用 n 星代表任务、k−1 板分隔各工人份额。板可在端点或相邻,表示零。共 n+k−1 位置,选板位置唯一决定字符串;每分配也唯一产生字符串,双射证明公式。

例题详解
五个相同任务与三位具名工人

(2,1,2) 写 **|*|**,七位含五星两板,数 (72)=21\binom72=21。允许零,(0,5,0) 为 |*****|。若任务各有身份,每任务选一工人,有 35=2433^5=243 不同分配,不是同模型。

隔板法编码星星、板、星、板、星星编码三个具名工人的份额 2、1、2。五个相同任务,两个隔板★★|★|★★(2, 1, 2)七个位置选两个板:C(7,2) = 21
图 5.3

两板规定三位具名工人的份额,移板改变分配,相同星不带任务身份。

n 种类型无序选 r 个允许重复,是同类非负计数:xix_i 为类型 i 次数,总 r,数 (n+r−1r)\binom{n+r-1}r,n≥1。保留顺序则 nrn^r。丢顺序的表示倍数随重复变化,不能简单除 r!。

每工人至少一,可写 yi=xi−1≥0y_i=x_i-1\ge0,剩 n−k,n≥k 时数 (n−1k−1)\binom{n-1}{k-1},否则零。一般下界 lil_i 减去总下界,先检查可行再算阶乘。

上界不能这样直接消除。五任务、三工人、每人至多二:21 无约束分配中,指定工人至少三时减三,剩二任务给三人,有六。三禁集不可能两者重叠,因为至少六任务才行。有效 21−3⋅6=321-3\cdot6=3,即 (2,2,1) 的排列。

这用补集与容斥,下一节展开。正确公式可能正确计其模型却解错题。上下界、工人具名与任务可区别性都是结构前提。

若工人不具名,(2,1,2) 与 (1,2,2) 可能同结果,具名公式过计。整数分拆是另一问题,不在核心。不能自动除 k!,相等份额与全不同份额的表示倍数不同。

零任务且 k≥1 有一个全零分配,与公式一致;要求正份额则无。零工人不在公式论域,可另规定零任务时一个空分配。异常域应明确。

检验理解

五相同任务给三具名工人,每人至少一,变换并计数。具名任务为何另算?

查看答案

每人先减一,剩二,(42)=6\binom42=6。具名任务有个体分配区别,份额模型合并这些结果,不能直接计它们。

6

容斥、补集与抽屉原理

A、B 重叠时,加大小使交集计两次,减一次得 ∣A∪B∣=∣A∣+∣B∣−∣A∩B∣|A\cup B|=|A|+|B|-|A\cap B|。四成员区域:仅 A、仅 B 各贡献一;交区贡献 1+1−1=11+1-1=1;都不属于贡献零。解释修正比只背公式有用。

三集合加单项、减两两交、加三交:

∣A∪B∪C∣=∣A∣+∣B∣+∣C∣−∣A∩B∣−∣A∩C∣−∣B∩C∣+∣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|.

三者都属的成员先三、减三、加一;恰属二者贡献二减一;恰属一贡献一。这些不交情况覆盖证明。更多集合交项交替,小模型有时枚举更简单。

例题详解
重叠数据标签

二十记录中八有 A、七有 B、三都有,并集 8+7−3=128+7-3=12,补集八。直接十五重复计共享三项;补集只关于该二十记录全集。

补集计数从总数减所求反面。至少一个碰撞的反面是全部桶不同,更易计。两情况应在共同全集中不交且穷尽;只补不完整失败列表会遗漏无效情况。

抽屉原理(pigeonhole principle)给保证而非概率。n 对象放 m 箱且 n>m,至少一箱有两个。若每箱至多一,总数至多 m,矛盾。m>0 时一般某箱至少 ⌈n/m⌉\lceil n/m\rceil,否则达不到总数。

五项放四桶必碰撞,无论规则与均匀性。三项四桶可碰却非必,可有不同桶。计数与抽样描述概率;容量未超时抽屉不提供保证。高概率与确定不同。

模块 04 的分类与反证支撑工具。容斥追踪每成员情况的系数,抽屉假设所有箱不足再推总数矛盾。新约束改变可能情况时不能被简短公式遮蔽。

不同容量 cic_i 的箱,超过总容量必某处溢出,是同一反证。不指出哪箱;少于总容量也不保证具体分配无溢出。可行分配存在与所选分配行为不同。

选择最易且有依据的计数:小重叠减交,至少一个看零个补,必重复比较容量。先命名数量并检查边界,常比做大算术更快揭模型错误。

检验理解

七项三箱,保证哪里至少多少?是否指定箱?用反证解释。

查看答案

某箱至少三。若全至多二总至多六,矛盾。只证明某箱存在,不指定名字。

7

有限概率需要抽样模型

有限样本空间 Ω\Omega 含模型全部结果,事件 E 是子集。均匀模型给每结果 1/∣Ω∣1/|\Omega|,于是 Pr⁡(E)=∣E∣/∣Ω∣\Pr(E)=|E|/|\Omega|。比值以前提等可能为条件,有限结果集本身不分配概率。

不等概率需给非负权重 pωp_\omega 总和一,Pr⁡(E)=∑ω∈Epω\Pr(E)=\sum_{\omega\in E}p_\omega。确定规则极端地给一结果一、其余零。计可能结果数不能区别它与均匀抽取,机制必须纳入模型。

例题详解
小碰撞的精确概率

三具名项独立均匀选四桶,结果为有序三元组,共 43=644^3=64 等可能。无碰撞 4⋅3⋅2=244\cdot3\cdot2=24,故碰撞 1−24/64=5/81-24/64=5/8。三不超过四,可碰且概率较大,却不保证。

用补集计算碰撞三具名项独立均匀选四桶,64 结果中 24 全不同,40 碰撞。完整均匀样本空间:64 元组全不同:244 × 3 × 2至少一碰撞:4064 − 24等权模型下:P(碰撞) = 40/64 = 5/8
图 5.4

均匀有序三元组有 64 结果:24 全不同、40 碰撞。只有模型给相同权重时计数才变成概率。

k 项独立均匀选 m 桶,0≤k≤m0\le k\le m 时无碰撞 ∏i=0k−1(m−i)/m\prod_{i=0}^{k-1}(m-i)/m,补得碰撞。k=0 空积一,碰撞零;k>m 抽屉保证,与均匀无关。真实哈希在固定数据上未必独立均匀,公式是模型计算,不自动描述每实现。

独立使完整三元组概率为阶段概率积 (1/4)3(1/4)^3。若所有项复制同一个随机均匀桶,每项单独均匀,却相依且三项必碰。均匀边缘不保证独立联合模型。

合并表示也破坏均匀性。A、A、B 三个具名位置均匀选无序二位置,三个等可能对,一个给 AA,两个给 AB,观察概率 1/3 与 2/3。不能把 {AA,AB} 当均匀。映射到观测时,把全部原像权重相加保存概率。

模拟抽样指定机制并报告频率,可检查预测与实现,有限频率不必等于精确概率。固定种子复现一次运行,不把样本变成枚举。后续研究抽样误差与集中;这里分开报告精确数、模型概率、样本比例。

实验穷尽 64 元组,再按同模型抽一万次。改变权重、相关性或碰撞定义,就改变机制或事件,应重新计算。接近公式的图不解释模型为何适用,比较数字前写前提。

这些基础支持搜索空间、碰撞、数据划分与有限不确定性。共同习惯是先定义结果再算;概率还需先定义选择机制再谈机会。这是本模块的核心结业能力。

检验理解

三项全复制一个共同均匀桶,每项单独均匀,碰撞仍 5/8 吗?哪个假设失败?

查看答案

必碰。完全相依,仅四个全相同元组发生,不是 64 元组等可能。独立均匀而非仅各自均匀才支持 5/8。

8

常见误解

症状 原因 修复
子集计数过大 保留具名位置 证明每子集 r! 个顺序
标签重复过计 把同标签当不同 定义观测结果与表示倍数
重叠标签直接加 共享计两次 同全集容斥
隔板忽略上界 计无约束分配 下界变换后修正上界禁集
有限结果全等概率 混淆有限与均匀 声明权重机制
每项均匀就用独立公式 漏依赖 检查联合构造
可能性大称必然 混淆概率与保证 比容量与是否仍有无碰结果
9

实验设置与模型解释

Python 3.11 或更新,无需包,见入门。itertools 构造有限序列与子集,math.comb 供精确整数参照,Fraction 保留精确概率。先解释结果模型。每次十分:预测三、计数/模型解释四、变化或故障三。

10

实验 1 枚举选择

四十分钟:预测二进制串、六有序对、三子集、五任务分配,运行后指出每行的不同标准。解释零选择。把具名二位置改为无序无放回并证明除二。十选三枚举确认 120 与 720,但不替代推导。

下载 lab1_selections.py

"""Count ordered, unordered, and repeated choices over small explicit domains."""
from itertools import combinations, permutations, product
from math import comb, factorial


def main():
    binary = ["".join(bits) for bits in product("01", repeat=4)]
    assert len(binary) == 2 ** 4
    print("Length-four binary strings:", len(binary))
    print("Ordered two from ABC:", ["".join(p) for p in permutations("ABC", 2)])
    print("Unordered two from ABC:", ["".join(p) for p in combinations("ABC", 2)])
    for n, r in ((3, 2), (5, 0), (5, 3), (10, 3)):
        ordered = len(list(permutations(range(n), r)))
        unordered = len(list(combinations(range(n), r)))
        assert ordered == factorial(n) // factorial(n - r)
        assert unordered == comb(n, r)
        print(f"n={n}, r={r}: ordered={ordered}, unordered={unordered}")
    allocations = [(a, b, 5 - a - b) for a in range(6) for b in range(6 - a)]
    assert len(allocations) == comb(7, 2)
    print("Five identical tasks across three named workers:", len(allocations))
    print("First five allocations:", allocations[:5])


if __name__ == "__main__":
    main()
输出
Length-four binary strings: 16
Ordered two from ABC: ['AB', 'AC', 'BA', 'BC', 'CA', 'CB']
Unordered two from ABC: ['AB', 'AC', 'BC']
n=3, r=2: ordered=6, unordered=3
n=5, r=0: ordered=1, unordered=1
n=5, r=3: ordered=60, unordered=10
n=10, r=3: ordered=720, unordered=120
Five identical tasks across three named workers: 21
First five allocations: [(0, 0, 5), (0, 1, 4), (0, 2, 3), (0, 3, 2), (0, 4, 1)]
11

实验 2 精确与模拟碰撞

四十分钟,第 6 节后:预测 64 元组、40 碰撞、5/8。运行比较样本比例,种子复现而不证明频率等于概率。改为五项四桶,无碰数须零、必碰;应更新无碰公式,不能保留三项表达式。讨论相关机制为何使独立公式失效。

下载 lab2_collisions.py

"""Uniform independent bucket choices: exact enumeration and a seeded sample."""
from fractions import Fraction
from itertools import product
from random import Random


def main():
    buckets, items = 4, 3
    outcomes = list(product(range(buckets), repeat=items))
    collisions = sum(len(set(outcome)) < items for outcome in outcomes)
    exact = Fraction(collisions, len(outcomes))
    no_collision_count = buckets * (buckets - 1) * (buckets - 2)
    assert exact == 1 - Fraction(no_collision_count, buckets ** items)
    print("Model: 3 named items choose independently and uniformly among 4 buckets.")
    print("Total outcomes:", len(outcomes), "collision outcomes:", collisions)
    print("Exact probability:", exact, "=", float(exact))
    rng = Random(2026)
    trials = 10000
    observed = 0
    for _ in range(trials):
        outcome = [rng.randrange(buckets) for _ in range(items)]
        observed += len(set(outcome)) < items
    estimate = observed / trials
    print(f"Seed=2026, trials={trials}, observed collision fraction={estimate:.4f}")
    print("A sampled fraction is not the exact probability or a collision guarantee.")


if __name__ == "__main__":
    main()
输出
Model: 3 named items choose independently and uniformly among 4 buckets.
Total outcomes: 64 collision outcomes: 40
Exact probability: 5/8 = 0.625
Seed=2026, trials=10000, observed collision fraction=0.6188
A sampled fraction is not the exact probability or a collision guarantee.
12

实验 3 重复标签与观察权重

四十分钟:预测 A、A、B 的完整标签串与二项倍数。解释全排列除二有效,而两观测各一半无效。运行保存两概率,描述三个等可能位置对映到两标签结果。改为 A、B、C,映射不合并位置对,所以各观察等权。

下载 lab3_repeated_labels.py

"""Distinguish named positions from repeated labels and preserve sampling weights."""
from collections import Counter
from fractions import Fraction
from itertools import combinations, permutations
from math import factorial


def main():
    labels = ("A", "A", "B")
    raw = list(permutations(labels))
    unique = sorted({"".join(outcome) for outcome in raw})
    assert len(raw) == 6 and len(unique) == factorial(3) // factorial(2)
    print("Named-position permutations:", len(raw))
    print("Distinct label strings:", unique, "count=", len(unique))
    selected = Counter("".join(sorted(pair)) for pair in combinations(labels, 2))
    print("Uniform pair of named positions; label multiplicities:", dict(sorted(selected.items())))
    total = sum(selected.values())
    for outcome, count in sorted(selected.items()):
        print(" ", outcome, "probability=", Fraction(count, total))
    print("Two possible label outcomes are not automatically equally likely.")
    print("Repair the count by defining whether positions, records, or labels are distinct.")


if __name__ == "__main__":
    main()
输出
Named-position permutations: 6
Distinct label strings: ['AAB', 'ABA', 'BAA'] count= 3
Uniform pair of named positions; label multiplicities: {'AA': 1, 'AB': 2}
  AA probability= 1/3
  AB probability= 2/3
Two possible label outcomes are not automatically equally likely.
Repair the count by defining whether positions, records, or labels are distinct.
13

练习与完整解答

练习 1–12 共 110 分钟、每题五分;扩展额外 25 分钟。先给结果与前提,再算;错误模型的正确数不能满分。

练习 1★★★计算5 分钟

计四位二进制串及恰二个一的串,解释限制。

查看解答

全部十六,恰二选位置 (42)=6\binom42=6。都保留位置,后者限制允许串。

练习 2★★★计算5 分钟

十不同记录选三,分别具名角色与无序子集。

查看解答

角色 720,每子集六顺序,子集 120。均无放回。

练习 3★★★计算5 分钟

计 A、A、B、B 完整标签串,为何 24 是另一问题?

查看解答

4!/(2!2!)=64!/(2!2!)=6;24 对同标签对象也分别命名,保留标签串丢弃的区别。

练习 4★★★计算5 分钟

二十记录八 A、七 B、三都有,计并与补。

查看解答

并十二,补八。减交移除每共享记录的第二次计数。

练习 5★★★proof10 分钟

区分一个对象证明帕斯卡恒等式,为何两情况可加?

查看解答

r 子集不含指定项有 (n−1r)\binom{n-1}r,含它有 (n−1r−1)\binom{n-1}{r-1}。不交且穷尽相加,边界无效选择数为零。

练习 6★★★proof10 分钟

两方法证明三元集八子集,并连接 ∑r(nr)=2n\sum_r\binom nr=2^n。

查看解答

每成员选/不选八模式;按大小 1+3+3+1=81+3+3+1=8。一般同一幂集有 2n2^n 编码,各不交大小类 (nr)\binom nr,双重计数证明。

练习 7★★★proof10 分钟

证明七项三箱某箱至少三,区别具名箱主张。

查看解答

全至多二则总至多六,与七矛盾。证明某箱存在,不指定箱也不赋概率。

练习 8★★★application10 分钟

五相同任务三具名工人,允许零与每人至少一分别计数。

查看解答

无约束 21;各减一剩二,六。任务相同、无上界。

练习 9★★★application10 分钟

同问题每人至多二,用排除禁集推导。

查看解答

21 总,指定人至少三有六,三人禁集不能重叠,故三,(2,2,1) 排列。

练习 10★★★application10 分钟

三独立均匀项选四桶,算碰撞并解释非保证。

查看解答

64 等可能元组,24 全不同,补 5/8。三未超四且有全不同元组,非抽屉必然。

练习 11★★★diagnosis15 分钟

A、A、B 均匀选二具名位置,报告 AA、AB 各半,修复。

查看解答

三个位置对等可能,一个 AA、两个 AB,所以 1/3、2/3。合并标签改变权重,两观测非自动均匀。

练习 12★★★diagnosis15 分钟

三项复制同一均匀桶,因各项均匀就用独立公式。诊断与真概率?

查看解答

相依,仅四全同元组,全碰概率一。单独均匀不能使独立模型 64 元组等可能。

练习 13★★★proof10 分钟

可选:按因子位置推导 (a+b)n(a+b)^n 的 an−rbra^{n-r}b^r 系数,解释零。

查看解答

选 r 个 b 位置,其余 a,系数 (nr)\binom nr,要求标量可交换。零时空积一,唯一零项系数一。

练习 14★★★application15 分钟

可选:十不同记录分具名大小 5、3、2 组,什么新约束使数失效?

查看解答

先选五再剩五选三,最后二,252⋅10=2520=10!/(5!3!2!)252\cdot10=2520=10!/(5!3!2!)。同主体必须同组会删除记录划分,需约束模型。

14

自测题

九自动选择,书面模型解释自评供剩一分。反馈提醒计数前提。

1
何时可直接加选项集合大小?
2
n 不同对象无放回有序选 r 的数?
3
无序子集为何除 r 阶乘?
4
五相同任务三具名工人允许零,有多少?
5
此分配隔板法要求什么?
6
五对象四箱,无抽样模型能推出什么?
7
何时概率为事件数除总数?
8
独立均匀三项四桶碰撞概率?
9
模拟比例接近精确模型概率,合理结论?
查看答案

均匀选三个具名位置中的二个,三个位置对等可能;一映 AA、二映 AB,观察概率 1/3、2/3。必须声明底层模型并合并原像权重才得分,仅说有的更常见不够。

15

引导阅读

必读十五分钟:在 MIT Mathematics for Computer Science 教材中阅读乘法、加法、子集计数,先说明一例顺序与重复再选公式。

必读二十分钟:阅读容斥与有限概率介绍,指出等可能假设位置,按成员情况重述重叠修正,区别计数与抽样概率。

选读:比较官方 itertools 组合迭代器 的顺序与放回约定,查看 math.comb 的精确整数参照。推导、例子与图原创。

16

复习与增长分析准备

结果定义决定计数:不交选择、构造分支或双射。有序、子集、多重集保留不同区别。容斥修重叠、补集计简单反面、抽屉给容量保证。概率增加权重,均匀才支持计数比。

结业任务:推导十选三有序与无序,证明帕斯卡,计约束任务分配,解释独立碰撞及相依反例。练习六十、实验三十、测验十分。算前写前提,反馈后修复区别。

模块 06 研究和、增长、递推。先解释搜索空间计数为何不自行确定某算法操作数,保留有限和归纳与乘法论证。

17

记法与双语术语

术语或符号 含义 English
$ A $
加法 / 乘法 不交替代 / 后续选择 Sum / product rule
n!,P(n,r)n!,P(n,r) 阶乘、无放回排列 Factorial, permutation
(nr)\binom nr 不同无序 r 子集 Binomial coefficient
多重集 成员带重复次数 Multiset
隔板法 非负整数分配双射 Stars and bars
容斥 修正重叠计数 Inclusion–exclusion
抽屉原理 超容量强制重复 Pigeonhole principle
样本空间 / 事件 模型结果 / 结果子集 Sample space / event
均匀 / 独立 等权 / 乘积抽样结构 Uniform / independent
精确概率 / 频率 模型权重 / 样本比例 Exact probability / observed frequency