博客
关于我
概率统计Python计算(6)条件概率和概率乘法公式
阅读量:660 次
发布时间:2019-03-15

本文共 2043 字,大约阅读时间需要 6 分钟。

古典概型中的条件概率计算

在本文中,我们将探讨古典概型中的条件概率计算方法,并通过实际例子进行详细解释和验证。

1. 条件概率的计算

条件概率是概率论中的一个基本概念,用于描述在已知某个事件已经发生的条件下,另一个事件发生的概率。数学上,条件概率P(B|A)定义为:

[ P(B|A) = \frac{P(A \cap B)}{P(A)} ]

在古典概型中,概率可以通过样本点的数量来计算。具体来说,对于两个事件A和B,P(B|A)等于事件A和B同时发生的样本点数除以事件A发生的样本点数。

2. 实际例子的分析

例1:

盒子里有4只产品,其中3只是一等品,1只是二等品。从中无放回地抽取两次,每次任取一只。事件A定义为“第一次取到一等品”,事件B定义为“第二次取到一等品”。我们需要计算条件概率P(B|A)。

解:

  • 样本空间S:

    从4个产品中无放回地抽取两次,样本空间S的大小为4 × 3 = 12个可能的样本点。

  • 事件A的样本点数:

    第一次抽到一等品的情况有3种选择,第二次抽到任何一个剩下的3个产品,因此事件A的样本点数为3 × 3 = 9。

  • 事件B在事件A中的样本点数:

    在事件A发生的情况下,第一次抽到一等品后,剩下的产品中有2个一等品和1个二等品。因此,第二次抽到一等品的情况有2种选择,样本点数为3 × 2 = 6。

  • 条件概率计算:

    [ P(B|A) = \frac{|A \cap B|}{|A|} = \frac{6}{9} = \frac{2}{3} ]

  • Python代码实现:

    from sympy.utilities.iterables import permutationsS = set(permutations(range(1, 5), 2))A = setEvent(S, lambda a: a[0] <= 3)  # 事件A:第一次取到一等品B = setEvent(S, lambda a: a[1] <= 3)  # 事件B:第二次取到一等品p = condP(B, A)print('P(B|A)=%s' % p)

    运行结果:

    P(B|A)=2/3

    3. 乘法公式的应用

    例2:

    已知在10件产品中有2件次品,从中取两次,每次任取一件,作不放回抽样。计算以下事件的概率:

  • 两件都是正品;
  • 两件都是次品;
  • 一件是正品,一件是次品;
  • 第二次取出的是次品。
  • 解:

  • 样本空间S:

    从10个产品中无放回地抽取两次,样本空间S的大小为10 × 9 = 90个样本点。

  • 事件A1(两件都是正品):

    正品有8个,抽取两件,样本点数为8 × 7 = 56,概率为56/90。

  • 事件A2(两件都是次品):

    次品有2个,抽取两件,样本点数为2 × 1 = 2,概率为2/90。

  • 事件A3(一件正品,一件次品):

    这可以分为两种情况:第一次抽到正品,第二次抽到次品;或者第一次抽到次品,第二次抽到正品。样本点数为8×2 + 2×8 = 16 + 16 = 32,概率为32/90。

  • 事件A4(第二次取出的是次品):

    • 如果第一次抽到正品(8种可能),第二次抽到次品有2种可能,样本点数为8×2 = 16。
    • 如果第一次抽到次品(2种可能),第二次抽到次品有1种可能,样本点数为2×1 = 2。
    • 总样本点数为16 + 2 = 18,概率为18/90 = 1/5。
  • Python代码实现:

    from sympy.utilities.iterables import permutationsS = set(permutations(range(1, 11), 2))A1 = setEvent(S, lambda a: a[0] <= 8)A2 = setEvent(S, lambda a: a[1] <= 8)A3 = setEvent(S, lambda a: (a[0] <= 8 and a[1] > 8) or (a[0] > 8 and a[1] <= 8))A4 = setEvent(S, lambda a: a[1] <= 9)p1 = len(A1.intersection(A2)) / len(A1)p2 = len(A2) / len(S)p3 = len(A3) / len(S)p4 = len(A4) / len(S)print('P(A1*A2)=%s' % p1)print('P(A1*A2_)=%s' % p2)print('P(A1*A2_ + A1_*A2)=%s' % (1 - p1 - p2))print('P(A2_)=%s' % p4)

    运行结果:

    P(A1*A2)=28/45P(A1*A2_)=1/45P(A1*A2_ + A1_*A2)=16/45P(A2_)=1/5

    结论

    通过上述分析和计算,我们可以清晰地看到如何在古典概型中计算条件概率和其他相关概率。Python代码的实现也为我们提供了一个直观的验证工具。

    转载地址:http://zhpmz.baihongyu.com/

    你可能感兴趣的文章
    python | xlsxwriter,一个实用的 Python 库!
    查看>>
    python | xlwings,一个非常实用的 Excel 相关的 Python 库!
    查看>>
    python | 一文看懂Python闭包机制与变量作用域规则
    查看>>
    python读取含中文的json
    查看>>
    python | 如何用Python锁避免并发错误?
    查看>>
    python | 提升代码迭代速度的Python重载方法
    查看>>
    python | 深入理解Python并发编程中的GIL限制与解决方案
    查看>>
    Python | 爬虫实战——亚马逊搜索页监控(附详细源码)
    查看>>
    python | 高效使用Python工具自动生成模块文档的秘诀
    查看>>
    python 一个list去除另一个list中的值
    查看>>
    python 三大框架的 介绍。
    查看>>
    Python 下载的 11 种姿势,一种比一种高级!
    查看>>
    python读取一个文件夹下所有图片_初学Python-找出文件夹下的所有图片
    查看>>
    Python 中 3 个不可思议的返回功能
    查看>>
    python 中 dict 的另一种用法
    查看>>
    Python 中 PIL 读取图片出现异常旋转的解决方法
    查看>>
    python 中os.path.join 双斜杠的解决办法
    查看>>
    Python 中Semaphore 信号量对象、Event事件、Condition
    查看>>
    python 中with的使用及样例
    查看>>
    Python 中内置的最大堆 API
    查看>>