质检抽检方案评估
电子厂质检员小王面临两难:按国标每批抽 125 个,但产线 24 小时不停,抽检太多影响出货。他想知道,如果只抽 50 个,漏掉 2% 以上不良品的概率是多少。使用本工具的「二项分布」计算器,输入批量 1000、不良率 2%、抽检数 50,得到漏检概率约 36%。这个数字让小王说服主管:必须维持原方案,否则每三批就有一批带病出货。
古典概型:有限个等可能基本事件下,P(A) = 有利结果数 / 总结果数。如掷一枚均匀骰子得 6:1/6 ≈ 0.1667。
独立事件:A、B 互不影响时 P(A∩B) = P(A)·P(B)、P(A∪B) = P(A)+P(B)−P(A)P(B);n 次独立重复「至少发生一次」= 1 − (1−p)ⁿ(抽卡保底直觉的来源)。
条件概率:在 B 已发生的前提下 A 的概率 P(A|B) = P(A∩B) / P(B)。
贝叶斯定理:P(A|B) = P(B|A)P(A) / [P(B|A)P(A) + P(B|¬A)P(¬A)]。低基础率下即便检测很准,阳性者真患病的概率也可能很低——经典「假阳性悖论」。
二项分布:n 次独立试验、每次成功概率 p,恰好 k 次成功 = C(n,k)·pᵏ·(1−p)ⁿ⁻ᵏ,期望 np、方差 np(1−p)。
抛一枚硬币三次,连续两次正面的概率是多少?多数人会算错,因为“条件”改变了样本空间。输入事件与条件,工具按古典概型、条件概率或贝叶斯公式直接输出数值与推导路径。所有计算在浏览器内完成,公式不离开本地,适合考试验算、决策树分析或贝叶斯推理练习。
电子厂质检员小王面临两难:按国标每批抽 125 个,但产线 24 小时不停,抽检太多影响出货。他想知道,如果只抽 50 个,漏掉 2% 以上不良品的概率是多少。使用本工具的「二项分布」计算器,输入批量 1000、不良率 2%、抽检数 50,得到漏检概率约 36%。这个数字让小王说服主管:必须维持原方案,否则每三批就有一批带病出货。
车险到期前一周,李师傅收到两家报价:A 公司保费 3200 元,B 公司 2800 元但免赔额高 500 元。他纠结的是——过去三年他每年出险 0-1 次,概率约 0.3。用「条件概率」算:给定出险概率 0.3,选 B 方案比 A 方案多承担 500×0.3=150 元期望损失,加上保费差 400 元,总期望支出反而多 250 元。数字一出,他直接续了 A 公司。
学生会主席筹备迎新晚会,预算 500 元买 100 个盲盒,其中 10 个含大奖。他担心:如果前 20 个同学每人抽一个都没中大奖,剩余 80 个盲盒里大奖概率是不是变高了?用「不放回抽样的条件概率」计算:在前 20 次无大奖的条件下,第 21 次抽中大奖的概率是 10/80=12.5%,比初始的 10% 高了 2.5 个百分点。他据此调整了现场主持词,鼓励大家继续排队。
面馆老板老张每天备 50 份招牌牛肉面,但周末常不够卖。他统计了 3 个月数据:周末爆单(售罄)的概率是 40%。用「贝叶斯定理」更新:如果今天下雨(周末下雨概率 60%),爆单概率会变成多少?代入先验概率 0.4、似然比(下雨天爆单率 0.8 vs 非下雨天 0.2),算得后验概率约 73%。从此下雨周末他直接备 80 份,少卖 30 份的损失远小于损失 30 个客单。
医学研究生小陈设计新药 II 期试验,预期有效率 65%,对照组 45%。按统计教材公式,每组需 82 人才能有 80% 把握(统计功效)检测出差异。但科室只能入组 60 人。她用本工具的「功效分析」反算:给定 60 人、α=0.05,实际检验功效只有 64%。这意味着有 36% 的概率明明有效却得不出阳性结论。她拿着这个数字向伦理委员会申请扩大入组,最终获批每组 80 人。
| 维度 | 本工具 | 竞品 A(Wolfram Alpha) | 传统方法 |
|---|---|---|---|
| 计算类型 | 古典 / 条件 / 贝叶斯概率 | 全类型概率统计(含分布拟合) | 手算公式或查概率表 |
| 输入方式 | 直接输入事件数、条件数 | 自然语言输入(如“P(A|B) if P(A)=0.3”) | 手动代入公式,需自行推导 |
| 速度 | 即时(纯前端计算) | 需网络请求,结果 1-3 秒 | 数分钟至数小时(复杂贝叶斯) |
| 离线可用 | 完全离线(浏览器内执行) | 必须联网 | 离线(纸笔或本地软件) |
| 隐私 | 数据不出本地浏览器 | 输入上传至云端服务器 | 完全本地(纸笔) |
| 学习成本 | 低:填写数字即可 | 中:需理解自然语言语法 | 高:需掌握概率公式与计算技巧 |
| 结果展示 | 纯数值结果 | 数值 + 分布图 + 推导步骤 | 仅数值(手算)或需额外绘图 |
| 输入 | 输出 | 说明 |
|---|---|---|
| P(A)=0.3, P(B)=0.4, P(A∩B)=0.12 → 求 P(A|B) | P(A|B) = 0.3 | 常规:条件概率基本公式验证,P(A∩B)=P(A)P(B) 时独立事件,结果与先验一致 |
| P(A)=0.5, P(B|A)=0.8, P(B|¬A)=0.2 → 求 P(A|B)(贝叶斯) | P(A|B) = 0.8 | 常规:贝叶斯定理典型应用,先验 0.5,似然比 4:1,后验提升至 0.8 |
| P(A)=0, P(B)=0.5, P(A∩B)=0 → 求 P(A|B) | P(A|B) = 0 | 边界:零概率事件的条件概率,结果应为 0,分母不为零时无除零风险 |
| P(A)=0.5, P(B)=0 → 求 P(A|B) | 未定义(分母为零) | 边界:条件概率分母为零,工具应明确提示无法计算,而非返回 0 或无穷 |
| P(A)=0.6, P(B)=0.5, P(A∩B)=0.35 → 求 P(A|B) | P(A|B) = 0.7 | 常规:非独立事件,P(A∩B) ≠ P(A)P(B),结果 0.7 验证条件概率公式正确性 |
| P(A)=0.5, P(B|A)=1, P(B|¬A)=0 → 求 P(A|B)(贝叶斯) | P(A|B) = 1 | 边界:完全确定性证据,后验概率为 1,验证贝叶斯公式在极端似然下的行为 |
| P(A)=0.3, P(B)=0.4, P(A∩B)=0.15 → 求 P(A|B) 与 P(B|A) | P(A|B) = 0.375, P(B|A) = 0.5 | 易错:对称性误解,用户常以为 P(A|B)=P(B|A),实际不等,本例直观展示差异 |
| P(A)=0.8, P(B|A)=0.9, P(B|¬A)=0.7 → 求 P(A|B)(贝叶斯) | P(A|B) ≈ 0.837 | 易错:高先验但似然比接近 1 时后验变化不大,用户可能误判贝叶斯更新幅度 |
1.条件概率 P(A|B) 与 P(B|A) 混淆
已知 P(患病)=0.01、P(阳性|患病)=0.99,求 P(患病|阳性) 时直接写 0.99用贝叶斯公式:P(患病|阳性) = 0.99×0.01 / (0.99×0.01 + 0.05×0.99) ≈ 0.167条件概率不可逆。P(A|B) 与 P(B|A) 数值通常不同,必须通过贝叶斯定理转换,不能直接互换。
2.古典概型中事件不是等可能时仍用古典公式
骰子不均匀,仍用 1/6 计算掷出 6 的概率先确认所有基本事件等可能。若骰子偏重,需用频率或贝叶斯更新概率古典概型公式 P = 有利结果数/总结果数 的前提是每个基本事件等可能。不等可能时结果失真。
3.互斥事件与独立事件混用乘法规则
P(下雨且带伞) = P(下雨)×P(带伞) 但两事件不独立P(下雨且带伞) = P(下雨)×P(带伞|下雨) 或直接统计联合频率独立事件才可简单相乘。互斥事件用加法,条件事件用乘法公式 P(A∩B)=P(A)P(B|A)。
4.贝叶斯公式中先验概率更新后仍用旧值
第一次检测阳性后,第二次检测仍用初始患病率 0.01 计算第一次后验概率作为第二次的先验概率:P(患病|第一次阳性) ≈ 0.167 作为新先验贝叶斯更新是迭代过程。每次新证据后,后验概率成为下一次计算的先验,不能重复用原始先验。
5.概率值超过 1 或小于 0 仍提交
输入 P(A)=1.5 或 P(B)=-0.2P(A)=0.5,P(B)=0.3概率公理要求 0 ≤ P ≤ 1。超出范围的值无意义,工具会报错或返回 NaN。
6.条件概率计算中分母为 0 忽略处理
P(A|B) 中 P(B)=0 时仍用公式 P(A∩B)/P(B)当 P(B)=0 时,P(A|B) 无定义,应返回 NaN 或提示 B 事件不可能发生除以零在数学上无定义。条件概率仅在 P(B)>0 时有意义,工具需做零值检查。
P(A|B) = P(B|A) × P(A) / P(B)
P(A|B)事件 B 发生下 A 的条件概率P(B|A)事件 A 发生下 B 的条件概率P(A)事件 A 的先验概率P(B)事件 B 的边缘概率某疾病在人群中的患病率 P(A)=0.01,检测准确率 P(B|A)=0.95,假阳性率 P(B|¬A)=0.05。某人检测阳性,求实际患病概率。先算 P(B)=P(B|A)P(A)+P(B|¬A)P(¬A)=0.95×0.01+0.05×0.99=0.0095+0.0495=0.059。代入贝叶斯公式:P(A|B)=0.95×0.01÷0.059≈0.161,即约 16.1%。
5 种主流语言实现,复制即用:
import math
def comb(n, k):
"""计算组合数 C(n,k)"""
if k < 0 or k > n:
return 0
return math.comb(n, k)
def classical_prob(favorable, total):
"""古典概率:有利结果数 / 总结果数"""
if total <= 0:
raise ValueError("总结果数必须 > 0")
return favorable / total
# 示例:掷一次骰子,点数为 3 的概率
print(classical_prob(1, 6)) # 0.16666666666666666
# 示例:从 52 张牌中抽一张红心 A 的概率
print(classical_prob(1, 52)) # 0.019230769230769232// 条件概率 P(A|B) = P(A∩B) / P(B)
function conditionalProb(pIntersection, pB) {
if (pB === 0) throw new Error('P(B) 不能为 0');
return pIntersection / pB;
}
// 示例:已知某疾病患病率 1%,检测准确率 99%,求检测阳性时真患病的概率
const pDisease = 0.01;
const pPositiveGivenDisease = 0.99;
const pPositive = 0.01 * 0.99 + 0.99 * 0.01; // 全概率
const pDiseaseGivenPositive = conditionalProb(
pDisease * pPositiveGivenDisease,
pPositive
);
console.log(pDiseaseGivenPositive); // 0.5package main
import (
"fmt"
"math/big"
)
// 贝叶斯定理:P(A|B) = P(B|A) * P(A) / P(B)
func bayes(pBGivenA, pA, pB *big.Rat) *big.Rat {
// P(A∩B) = P(B|A) * P(A)
pIntersect := new(big.Rat).Mul(pBGivenA, pA)
// P(A|B) = P(A∩B) / P(B)
result := new(big.Rat).Quo(pIntersect, pB)
return result
}
func main() {
// 示例:P(雨|云) = P(云|雨) * P(雨) / P(云)
// 假设:P(云|雨)=0.8, P(雨)=0.3, P(云)=0.4
pCloudGivenRain := big.NewRat(4, 5) // 0.8
pRain := big.NewRat(3, 10) // 0.3
pCloud := big.NewRat(2, 5) // 0.4
result := bayes(pCloudGivenRain, pRain, pCloud)
fmt.Println(result.FloatString(4)) // 0.6000
}// 组合数计算(用于古典概率中的排列组合场景)
function factorial(n: number): number {
if (n < 0) throw new Error('负数无阶乘');
if (n <= 1) return 1;
return n * factorial(n - 1);
}
function combination(n: number, k: number): number {
if (k < 0 || k > n) return 0;
return factorial(n) / (factorial(k) * factorial(n - k));
}
// 示例:从 10 人中选 3 人组队的可能数
console.log(combination(10, 3)); // 120
// 示例:抛 5 次硬币恰好 2 次正面的概率(二项分布)
const p = 0.5;
const n = 5;
const k = 2;
const prob = combination(n, k) * Math.pow(p, k) * Math.pow(1 - p, n - k);
console.log(prob); // 0.3125/// 计算条件概率 P(A|B)
fn conditional_prob(p_intersection: f64, p_b: f64) -> Result<f64, &'static str> {
if p_b == 0.0 {
return Err("P(B) 不能为 0");
}
Ok(p_intersection / p_b)
}
fn main() {
// 示例:从一副牌中抽到红心且是 A 的概率
// P(红心∩A) = 1/52 ≈ 0.01923
// P(红心) = 13/52 = 0.25
// P(A|红心) = (1/52) / (13/52) = 1/13 ≈ 0.07692
match conditional_prob(1.0/52.0, 13.0/52.0) {
Ok(prob) => println!("{:.4}", prob), // 0.0769
Err(e) => eprintln!("错误: {}", e),
}
}条件概率 P(A|B) 表示在事件 B 已经发生的条件下,事件 A 发生的概率。在工具里,通常第一个输入框是目标事件 A,第二个是条件事件 B。例如,你想算“已知今天是阴天,下雨的概率”,那么“下雨”是 A,“阴天”是 B。如果填反,结果会完全不同。建议先明确“在什么条件下”和“算什么事件”,再对应填入。
简单说:古典概率算“所有可能结果中,某事件占多少”,比如掷骰子出 3 的概率是 1/6。条件概率算“已知一件事发生,另一件事的概率”,比如已知阴天,下雨概率变大。贝叶斯则是“已知结果,反推原因的概率”,比如看到地上湿了,反推是下雨还是洒水车。如果只是掷骰子、抽扑克,用古典;如果事件之间有依赖关系,用条件;如果已知结果要反推原因,用贝叶斯。
不一定。概率为 0 意味着事件不可能发生(例如骰子掷出 7),概率为 1 意味着必然发生(例如从全是红球的袋子里抽到红球)。如果输入的事件确实不满足条件(比如同时满足两个互斥事件),结果 0 是正常的。请检查事件定义是否正确,例如“A 和 B 同时发生”但 A 和 B 互斥,结果就是 0。如果感觉不符合常识,重新审视事件描述。
本工具支持多个事件的组合计算,包括同时发生(交集)、至少一个发生(并集)等。对于古典概率,可以直接输入事件个数和总可能数。对于条件概率,可以逐步计算多步条件。对于贝叶斯,支持多原因多结果。如果涉及三个事件同时发生,建议先确认事件是否独立,再选择对应模式。如果事件不独立,需要先知道条件概率值,才能准确计算。
可以作为验算参考,但不建议直接抄结果。考试和作业通常要求写出计算过程,且题目可能隐含假设(如等可能、独立),工具默认按标准数学公式计算,不会自动判断这些假设是否成立。例如,古典概率要求“每个结果等可能”,如果题目中骰子不均匀,工具直接算会出错。建议先用工具验证思路,再手动写出完整步骤。
条件概率公式 P(A|B) = P(A∩B) / P(B),其中 P(A∩B) 是 A 和 B 同时发生的概率。如果你只输入了 P(A)=0.3 和 P(B)=0.4,但没有输入 P(A∩B),工具无法算出条件概率。请确保输入了联合概率 P(A∩B)。如果只有两个单独概率,工具可能默认假设独立(P(A∩B)=P(A)*P(B)),但实际可能不独立,导致结果偏差。
先验概率是“在获得新证据之前,你对原因发生可能性的初始判断”,比如“下雨的先验概率是 30%”。似然概率是“如果原因成立,观察到证据的概率”,比如“如果下雨,地上湿的概率是 90%”。工具会要求你输入这些值,然后自动算出后验概率(有了证据后,原因的概率)。建议先确定“原因”和“证据”各是什么,再填入对应数字。
本工具完全在浏览器本地运行,不需要联网。所有计算都在你电脑上完成,数据不会上传到服务器,因此断网也能正常使用。这也意味着你的输入数据不会被第三方获取,隐私性较好。如果页面加载后工具界面显示正常,即使关闭网络,输入数字和点击计算也能得到结果。
隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。