惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
CXSECURITY Database RSS Feed - CXSecurity.com
L
LINUX DO - 热门话题
S
Secure Thoughts
TaoSecurity Blog
TaoSecurity Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
T
Threat Research - Cisco Blogs
AI
AI
B
Blog RSS Feed
S
Schneier on Security
雷峰网
雷峰网
Schneier on Security
Schneier on Security
Help Net Security
Help Net Security
Cloudbric
Cloudbric
L
LINUX DO - 最新话题
罗磊的独立博客
有赞技术团队
有赞技术团队
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Apple Machine Learning Research
Apple Machine Learning Research
P
Proofpoint News Feed
酷 壳 – CoolShell
酷 壳 – CoolShell
The Hacker News
The Hacker News
博客园 - Franky
Attack and Defense Labs
Attack and Defense Labs
The Cloudflare Blog
Webroot Blog
Webroot Blog
Last Week in AI
Last Week in AI
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
博客园 - 叶小钗
美团技术团队
L
Lohrmann on Cybersecurity
T
The Blog of Author Tim Ferriss
The Last Watchdog
The Last Watchdog
T
Troy Hunt's Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Vercel News
Vercel News
Know Your Adversary
Know Your Adversary
O
OpenAI News
博客园 - 【当耐特】
Hacker News - Newest:
Hacker News - Newest: "LLM"
C
Cybersecurity and Infrastructure Security Agency CISA
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
www.infosecurity-magazine.com
www.infosecurity-magazine.com
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
PCI Perspectives
PCI Perspectives
H
Heimdal Security Blog
I
InfoQ
GbyAI
GbyAI
T
Threatpost
C
Cisco Blogs

qlAD 的技术笔记

2026 年 6 月 7 日 -- 我有社交恐惧症,恐惧外面到处雷电风雨声(大学生活记录) 手把手带你实现哈希表(C/C++ 数据结构) 手把手带你实现图结构(C/C++ 数据结构) 手把手带你实现二叉树(C/C++ 数据结构) 手把手带你实现栈和队列(C/C++ 数据结构) 手把手带你实现单/双链表(C/C++ 数据结构) 手把手带你实现动态数组(C/C++ 数据结构) 2026 年 1 月 2 日 -- 我不怕冷,因为我内心炽热 【2025 年度总结】(大学生活记录) 2025 年 12 月 2 日 -- 省电模式:大一 100 天耗电日志(大学生活记录) 蓝桥杯备赛第一期 —— 枚举与模拟 2025 年 11 月 3 日 -- 用爱发电、大爱无私(大学生活记录) 使用循环嵌套输出规则图形找规律讲解(嵌套循环-图形输出) 2025 年 10 月 1 日 -- 二字开头第一年的生日记录及感悟随笔(大学生活记录) Python 初级 04 -- 目前为止 Python 中你们做题可能会遇到的问题以及七七八八 2025 年 9 月 24 日 -- 开学后的第一课及军训汇演(大学生活记录) Python 初级 03 -- 程序设计的三种结构之选择结构和循环结构 Python 初级 02 -- 基础的数据类型和输入输出 2025 年 9 月 17 日 -- 大连 2025 国际大体联足球世界杯(大学生活记录) Python 初级 01 -- 初识编程、理解计算机语言及程序运行方式 适合大一新生学习编程的前一课 -- 编程先导(编程的本质) 2025 年 9 月 12 日 -- 三天军训感受以及一些七七八八(大学生活记录) 2025 年 9 月 9 日 -- 体检、军训前的准备(大学生活记录) 适合大一新生的计算机基础知识 -- 个人认为足够版 2025 年 9 月 7 日 -- 既来之、则安之(大学生活记录) C++ 程序的内存布局 —— 代码区、全局/静态区、栈区和堆区 联想小新 pro 16 2025 开箱记录:跳过联网、office 激活、更换 win 11 专业版 R 语言中的数学函数 计算机软件著作权申请过程记录 从聚类到回归:用 Python 解析鸢尾花数据集的完整数据科学流程 高中化学物质反应规则表 —— 方程式之间也有规律可循 集合元素性质、关系、子集公式、基本运算 —— 一篇文章带你全方面死磕集合 如何为你的项目选择合适的许可证 -- 全方位指南 解释 3:1 和 9:3:3:1 的详细来源 —— 建立减数分裂与孟德尔遗传学定律之间的联系 重新设置磁盘分区以及 Btrfs 子卷(subvolume)布局的无损方案 零基础实战:用 Docker 启动 dockermailserver 绕过 25 端口封锁搭建个人邮箱服务器 基于 GitHub Actions + OSS 的自托管 APT 仓库全面指南 如何在安装 Debian 时配置 Btrfs 子卷 | 详细分步指南 一个合格的个人网站站长应该知道哪些事? CSS 基础入门教程 —— 选择器、样式声明 HTML 基础入门 —— 基本结构和语法 给博客添加一个文章数据统计的页面 Git 学习笔记(命令备忘表) Anki 牌组选项详细解释与设置 手动编译带有 KernelSU 的 OnePlus 6 内核 安卓类原生系统补全计划 —— PixelExperience(一加 OnePlus) 如何使用 use-sound 为 React 应用添加声音效果 标准化项目的 GitHub Flow 工作流 如何搭建设计自己的博客网站? 使用安知鱼主题同款的 Twikoo 评论组件 配置 GitHub Actions 实现自动化提交百度收录 第00期 | 环境搭建 & 递归 (一) | 基本数列递归 逐字符讲解 C 语言 HelloWorld 程序 2023 年回顾 🤟 Anki:记忆神器,助你高效学习 Gentoo 学习笔记 美化你的 PixelExperience OS Markdown 语法指南 搭建 OneDrive 目录索引 为什么用 65 表示大写字母 A
条件概率、全概率与贝叶斯公式 —— 一篇文章带你死磕概率公式
qlAD · 2025-05-29 · via qlAD 的技术笔记

cover

什么是概率

概率是一个介于 0 和 1 之间的数,表示一个事件发生的可能性。

计算方法

所有的概率都只可以用一个公式来表示,即概率的古典定义:P(A)=n(A)n(S)P(A) = \frac{n(A)}{n(S)}

其中,n(A)n(A) 表示事件 A 发生的次数,n(S)n(S) 表示样本空间 S 中所有可能事件的总次数。

表示形式

事件 A 发生的概率记作 P(A)P(A),如果事件 A 不发生,则记作 P(A‾)P(\overline{A})

事件 A 和 B 同时发生的概率记作 P(A∩B)P(A \cap B),也可记作 P(AB)P(AB)

事件 A 或 B 发生的概率记作 P(A∪B)P(A \cup B),也可记作 P(A+B)P(A + B)

事件 A 在事件 B 发生的条件下发生的概率记作 P(A∣B)P(A|B)

概率公式

概率公式只是为了方便整理我们的思路,更专业地写解题过程。这里主要分析三个核心公式:

条件概率公式

条件概率顾名思义就是在某个条件下计算事件发生的概率。

事件 A 在事件 B 发生的条件下发生的概率记作 P(A∣B)P(A|B),其计算公式为:P(A∣B)=P(A∩B)P(B)P(A|B) = \frac{P(A \cap B)}{P(B)}

通过概率的计算方法,我们可以将其改写为:P(A∣B)=n(A∩B)n(B)P(A|B) = \frac{n(A \cap B)}{n(B)}

这个表示方法还是不够直观,可以用 venn 图表示如下:

条件概率公式

要研究概率首先要确定样本空间和符合条件的事件。因为 P(A∣B)P(A|B) 是在事件 B 发生的条件下计算事件 A 的概率,所以样本空间就是 B ,而符合条件的事件就是 A 和 B 的交集

所以 P(A∣B)=n(A∩B)n(B)=P(A∩B)P(B)=P(A∩B)P(B)P(A|B) = \frac{n(A \cap B)}{n(B)}=\frac{P(A\cap B)}{P(B)}=\frac{P(A \cap B)}{P(B)}

我们将这个公式变形可以得到:P(A∩B)=P(A∣B)P(B)P(A \cap B) = P(A|B)P(B) 即概率的乘法原理,这两个公式本质是不同的,如何理解呢?

一件事情发生的概率等于造成这件事发生的接连发生的事件概率的乘积,如果要让A,B同时发生,那么就让其中一个先发生,不妨设为 A 吧,A 发生以后 B 再发生,这样子的话,A,B 就会同时发生

但是你们可能就会疑惑了,印象中的乘法公式不是 P(A∩B)=P(A)P(B)P(A \cap B) = P(A)P(B)吗?为什么这里变成了 P(A∩B)=P(A∣B)P(B)P(A \cap B) = P(A|B)P(B) 呢?

其实是因为如果事件 A 与 B 相互独立,互不影响,那么 P(A∣B)=P(A)P(A|B) = P(A),所以 P(A∩B)=P(A∣B)P(B)=P(A)P(B)P(A \cap B) = P(A|B)P(B) = P(A)P(B)

而平时做的题目中,事件 A 和 B 往往是相互独立的,所以我们经常会用到 P(A∩B)=P(A)P(B)P(A \cap B) = P(A)P(B) 这个公式

如果事件 A 和 B 不是相互独立的,那么就不能使用 P(A∩B)=P(A)P(B)P(A \cap B) = P(A)P(B) 这个公式,而是要使用 P(A∩B)=P(A∣B)P(B)P(A \cap B) = P(A|B)P(B) 这个公式

全概率公式

所谓全概率公式就是将“全”部概率 P(B)P(B) 划分成很多部分的和。理论和实用意义在于:在较复杂的情况下直接算 P(B)P(B) 不容易,但是 B 总是随着某个 AiA_i 出现,适当去构造这一组 AiA_i 往往可以简化计算

其实就是一个分类讨论的加法原理,上文提到过概率公式只是为了方便整理我们的思路:P(B)=∑i=1nP(Ai)P(B∣Ai)P(B) = \sum_{i=1}^{n} P(A_i)P(B|A_i)

比如当 n=3n=3 时,P(B)=P(A1)P(B∣A1)+P(A2)P(B∣A2)+P(A3)P(B∣A3)P(B) = P(A_1)P(B|A_1) + P(A_2)P(B|A_2) + P(A_3)P(B|A_3),而这个式子就是我们分析题目、整理树状图的公式表现,也可以理解成加法原理

全概率公式

根据上图可知 B 事件可以表示为 B=A1B∪A2B∪A3BB=A_1B \cup A_2B \cup A_3B,而 A1BA_1BA2BA_2BA3BA_3B 互不相交,所以 P(B)=P(A1B)+P(A2B)+P(A3B)P(B) = P(A_1B) + P(A_2B) + P(A_3B)

而我们知道 AiBA_iB 表示两件事情同时发生,所以 P(AiB)=P(Ai)P(B∣Ai)P(A_iB) = P(A_i)P(B|A_i)

P(B)=P(A1)P(B∣A1)+P(A2)P(B∣A2)+P(A3)P(B∣A3)P(B) = P(A_1)P(B|A_1) + P(A_2)P(B|A_2) + P(A_3)P(B|A_3)

相信你也注意到了,全概率公式中的一组 AiA_i 需要满足以下条件:

  1. 互斥:Ai∩Aj=∅A_i \cap A_j = \emptyset,即不同的 AiA_i 之间没有交集
  2. 完备:A1∪A2∪...∪An=SA_1 \cup A_2 \cup ... \cup A_n = S,即所有的 AiA_i 的并集等于样本空间 S

这样的一组 AiA_i 可以将样本空间 S 划分成互不相交的部分,从而使得全概率公式成立。将 AiA_i 称作完备事件组

贝叶斯公式

对于贝叶斯公式,很多人都觉得它很难理解,其实它就是全概率公式的变形,贝叶斯公式的核心思想是通过已知结果去推过程

比如对于一个完备事件组 A1,A2,...,AnA_1, A_2, ..., A_n,我们可以通过全概率公式计算出事件 B 的概率:P(B)=∑i=1nP(Ai)P(B∣Ai)P(B) = \sum_{i=1}^{n} P(A_i)P(B|A_i)

那么现在如果问你事件 BB 属于事件 AiA_i 的概率是多少?或者问你在已知事件 BB 发生的条件下,事件 AiA_i 发生的概率

要求的是在已知事件 BB 发生的条件下,事件 AiA_i 发生的概率,这不就是条件概率的公式吗

所以 P(Ai∣B)=P(AiB)P(B)P(A_i|B) = \frac{P(A_iB)}{P(B)},而 P(AiB)=P(Ai)P(B∣Ai)P(A_iB) = P(A_i)P(B|A_i),所以 P(Ai∣B)=P(Ai)P(B∣Ai)P(B)P(A_i|B) = \frac{P(A_i)P(B|A_i)}{P(B)}

P(B)P(B) 又可以用全概率公式表示为:P(B)=∑i=1nP(Ai)P(B∣Ai)P(B) = \sum_{i=1}^{n} P(A_i)P(B|A_i)

所以贝叶斯公式就是:P(Ai∣B)=P(Ai)P(B∣Ai)∑i=1nP(Ai)P(B∣Ai)P(A_i|B) = \frac{P(A_i)P(B|A_i)}{\sum_{i=1}^{n} P(A_i)P(B|A_i)}

生物遗传概率题

在一个大型随机交配的种群中,某常染色体隐性遗传病由等位基因 A 和 a 控制,其中 a 是致病等位基因。已知等位基因 a 的频率为 0.02,等位基因 A 的频率为 0.98。基因型 aa 表现为患病,基因型 AA 或 Aa 表现为正常(其中 Aa 为携带者)

条件概率应用

随机抽取一个人,已知他不患病(表型正常),求他是携带者(基因型 Aa)的概率

这道题明显要用条件概率:已知不患病,求是携带者的概率

根据题意,事件 A 为不患病,事件 B 为携带者,则所求即是 P(B∣A)P(B|A)

根据条件概率公式:P(B∣A)=P(A∩B)P(A)P(B|A) = \frac{P(A \cap B)}{P(A)}

P(A∩B)P(A \cap B) 表示同时满足不患病和携带者的概率,也就是 Aa。P(A)P(A) 表示不患病的概率,也就是 AA 和 Aa 的概率之和

所以 P(A∩B)=P(基因型是 Aa)=2pq=2×4950×150=982500P(A \cap B)=P(\text{基因型是 Aa})=2pq=2 \times \frac{49}{50} \times \frac{1}{50} = \frac{98}{2500}

P(A)=P(基因型是 AA)+P(基因型是 Aa)=p2+2pq=49502+2×4950×150=24992500P(A)=P(\text{基因型是 AA})+P(\text{基因型是 Aa})=p^2+2pq=\frac{49}{50}^2+2 \times \frac{49}{50} \times \frac{1}{50} = \frac{2499}{2500}

因此,P(B|A) 的计算为: P(B∣A)=P(A∩B)P(A)=982499=251P(B|A) = \frac{P(A \cap B)}{P(A)} = \frac{98}{2499} = \frac{2}{51}

全概率公式应用

求患病的概率

BB 为事件“患病”(基因型 aa)。

使用基因型作为完备事件组:设 G1G_1 = 基因型 AA,G2G_2 = 基因型 Aa,G3G_3 = 基因型 aa。这些事件互斥且完备

根据全概率公式,P(B)=P(G1)P(B∣G1)+P(G2)P(B∣G2)+P(G3)P(B∣G3)P(B) = P(G_1)P(B|G_1) + P(G_2)P(B|G_2) + P(G_3)P(B|G_3)

完备事件组各基因型概率条件概率
G1G_1 (基因型为 AA)P(G1)=p2=49502=24012500P(G_1) = p^2 = \frac{49}{50}^2 = \frac{2401}{2500}P(B∣G1)=0P(B\mid G_1) = 0 (AA 不患病)
G2G_2 (基因型为 Aa)P(G2)=2pq=2×4950×150=982500P(G_2) = 2pq = 2 \times \frac{49}{50} \times \frac{1}{50} = \frac{98}{2500}P(B∣G2)=0P(B\mid G_2) = 0 (Aa 不患病)
G3G_3 (基因型为 aa)P(G3)=q2=1502=12500P(G_3) = q^2 = \frac{1}{50}^2 = \frac{1}{2500}P(B∣G3)=1P(B\mid G_3) = 1 (aa 患病)

所以,P(B)=24012500×0+982500×0+12500×1=12500P(B) = \frac{2401}{2500} \times 0 + \frac{98}{2500} \times 0 + \frac{1}{2500} \times 1 = \frac{1}{2500}

贝叶斯公式应用

已知患病个体,求父母都是携带者的概率

CC 为事件“孩子患病”(基因型 aa)。 设 DD 为事件“父母都是携带者”(父母基因型均为 Aa)

则所求为 P(D∣C)P(D|C),根据贝叶斯公式:P(D∣C)=P(D)P(C∣D)P(C)P(D|C) = \frac{P(D)P(C|D)}{P(C)}

先计算 P(D)P(C∣D)P(D)P(C|D)

由于父母都是携带者的概率为 P(D)=P(Aa)×P(Aa)=2pq×2pq=(2×4950×150)2=96046250000P(D) = P(Aa) \times P(Aa) = 2pq \times 2pq = (2 \times \frac{49}{50} \times \frac{1}{50})^2 = \frac{9604}{6250000}

P(C∣D)P(C|D) 表示在父母都是携带者的情况下,孩子患病的概率。根据孟德尔遗传定律,父母都是 Aa 的情况下,孩子患病的概率为 P(C∣D)=14P(C|D) = \frac{1}{4}

所以,P(D)P(C∣D)=96046250000×14=24016250000P(D)P(C|D) = \frac{9604}{6250000} \times \frac{1}{4} = \frac{2401}{6250000}

接下来计算 P(C)P(C),即孩子患病的概率,P(C)=q2=1502=12500P(C) = q^2 = \frac{1}{50}^2 = \frac{1}{2500}

最后带入贝叶斯公式:P(D∣C)=2401625000012500=24012500P(D|C) = \frac{\frac{2401}{6250000}}{\frac{1}{2500}} = \frac{2401}{2500}

简便方法(配子法)

以上三个小题其实都有简便方法来计算,即生物学的角度,计算过程如下:

1、条件概率题(已知不患病,求是携带者)

生物学思路: 表型正常的个体只能由配子组合形成 AAAa 基因型。携带者(Aa)在正常个体中的比例,本质是计算 含 a 等位基因的正常个体占比

配子法步骤

  1. 正常个体的形成方式:

    • AA 型:需雄配子 A + 雌配子 A
    • Aa 型:可雄配子 A + 雌配子 a 雄配子 a + 雌配子 A
  2. 计算比例:

    • 正常个体总概率 = p2p^2 (AA) + 2pq2pq (Aa)
    • 携带者 (Aa) 概率 = 2pq2pq
    • 所求概率 = Aa 概率正常个体总概率=2pqp2+2pq\dfrac{\text{Aa 概率}}{\text{正常个体总概率}} = \dfrac{2pq}{p^2 + 2pq}
  3. 代入数值: 2×4950×150(4950)2+2×4950×150=98250024012500+982500=982401+98=982499=251\dfrac{2 \times \dfrac{49}{50} \times \dfrac{1}{50}}{\left( \dfrac{49}{50} \right)^2 + 2 \times \dfrac{49}{50} \times \dfrac{1}{50}} = \dfrac{\dfrac{98}{2500}}{\dfrac{2401}{2500} + \dfrac{98}{2500}} = \dfrac{98}{2401 + 98} = \dfrac{98}{2499} = \dfrac{2}{51}

答案251\dfrac{2}{51}


2、全概率公式题(求患病概率)

生物学思路
患病个体基因型为 aa,只需两个 a 配子结合。直接利用配子随机结合原理。

配子法步骤

  1. 种群中雄配子 a 频率 = q=150q = \dfrac{1}{50}

  2. 种群中雌配子 a 频率 = q=150q = \dfrac{1}{50}

  3. 患病概率 = 雄配子 a × 雌配子 a = q×q=q2q \times q = q^2

  4. 代入数值: (150)2=12500 \left( \dfrac{1}{50} \right)^2 = \dfrac{1}{2500}

答案12500\dfrac{1}{2500}


3、贝叶斯公式题(已知患病个体,求父母都是携带者)

生物学思路

  • 患病孩子基因型为 aa ⇒ 必然从父母各继承一个 a 等位基因
  • 要求父母均为携带者(Aa),等价于:在父母各提供一个 a 配子的条件下,父母均非患者(即排除 aa 型)

配子法步骤

  1. 父母提供 a 配子的概率:

    • 父亲提供 a 配子概率 = P(父亲a)=q=150P(\text{父亲}a) = q = \dfrac{1}{50}
    • 母亲提供 a 配子概率 = P(母亲a)=q=150P(\text{母亲}a) = q = \dfrac{1}{50}
  2. 关键简化

    • 父亲提供 a 配子时,其基因型可能是 Aaaa
    • 父亲是 Aa 的概率(已知提供 a 配子)= P(Aa)×P(Aa→a)P(提供a)=2pq×12q=pqq=p\dfrac{P(\text{Aa}) \times P(\text{Aa} \to a)}{P(\text{提供}a)} = \dfrac{2pq \times \frac{1}{2}}{q} = \dfrac{pq}{q} = p
      (分子:Aa 概率 × 提供 a 概率;分母:总提供 a 概率 = q)
  3. 因此:

    • 父亲是携带者(Aa)的概率(已知提供 a 配子)= pp
    • 母亲是携带者(Aa)的概率(已知提供 a 配子)= pp
    • 父母独立 ⇒ 两者均为携带者的概率 = p×p=p2p \times p = p^2
  4. 代入数值: (4950)2=24012500 \left( \dfrac{49}{50} \right)^2 = \dfrac{2401}{2500}

答案24012500\dfrac{2401}{2500}