本文共 4493 字,大约阅读时间需要 14 分钟。
根据条件概率的计算公式 P ( B ∣ A ) = P ( A ∩ B ) / P ( A ) P(B|A)=P(A\cap B)/P(A) P(B∣A)=P(A∩B)/P(A),在古典概型下,我们定义如下的Python函数:
def condP(A, B): #事件B发生的条件下A的概率 return len(A & B) / len(B)
程序中定义的函数condP(A,B)只适合于计算古典概型中的条件概率 P ( A ∣ B ) P(A|B) P(A∣B)。代码很简单,为求条件概率 P ( A ∣ B ) P(A|B) P(A∣B),按计算公式需要计算 P ( A ∩ B ) / P ( A ) P(A\cap B)/P(A) P(A∩B)/P(A),在古典概型下,无论是 P ( A ∩ B ) P(A\cap B) P(A∩B)还是 P ( A ) P(A) P(A),都是用事件所含样本点数 ∣ A ∩ B ∣ |A\cap B| ∣A∩B∣和 ∣ A ∣ |A| ∣A∣除以样本空间的样本点数 ∣ S ∣ |S| ∣S∣,即 P ( A ∣ B ) = P ( A ∩ B ) / P ( A ) = ∣ A ∩ B ∣ / ∣ S ∣ ∣ A ∣ / ∣ S ∣ = ∣ A ∩ B ∣ ∣ A ∣ P(A|B)=P(A\cap B)/P(A)=\frac{|A\cap B|/|S|}{|A|/|S|}=\frac{|A\cap B|}{|A|} P(A∣B)=P(A∩B)/P(A)=∣A∣/∣S∣∣A∩B∣/∣S∣=∣A∣∣A∩B∣。函数condP,就是按此结论,返回len(A&B)/ len(A)。
例1 一盒子装有4只产品,其中有3只一等品,1只二等品。从中无放回地抽取产品两次,每次任取一只。设事件 A A A为“第一次取到的是一等品”,事件 B B B为“第二次取到的是一等品”。求条件概率 P ( B ∣ A ) P(B|A) P(B∣A)。 解: 由抽取的任意性知,这个试验是一个古典概型。所谓无放回抽样,指的是第1次抽取1球,观察后不放回袋中,然后从袋中抽取第2次。第一次抽取时在4件产品中任取一件,故有4种取法。第2次抽取是在剩下的3件产品中任取一件,有3种取法。因此,样本空间含样本点数 ∣ S ∣ = 4 ⋅ 3 = 12 |S|=4\cdot 3=12 ∣S∣=4⋅3=12。对事件 A A A:“第一次取到的是一等品”而言,第一次取得的一等品应是原有的3件一等品之一,故有3种取法;第二次是在余下的3件中任取一件,也有3种取法。故 ∣ A ∣ = 3 2 = 9 |A|=3^2=9 ∣A∣=32=9, P ( A ) = 9 / 12 = 3 / 4 P(A)=9/12=3/4 P(A)=9/12=3/4。事件 A ∩ B A\cap B A∩B:,“第一次和第二次都取到一等品”。这意味着第一次是在3件一等品中任取一件,第二次是在剩下的2件一等品中任取一件,故 ∣ A ∩ B ∣ = 3 ⋅ 2 = 6 |A\cap B|=3\cdot 2=6 ∣A∩B∣=3⋅2=6, P ( A ∩ B ) = 6 / 12 = 1 / 2 P(A\cap B)=6/12=1/2 P(A∩B)=6/12=1/2。于是 P ( B ∣ A ) = P ( A ∩ B ) P ( A ) = 1 / 2 3 / 4 = 2 / 3. P(B|A)=\frac{P(A\cap B)}{P(A)}=\frac{1/2}{3/4}=2/3. P(B∣A)=P(A)P(A∩B)=3/41/2=2/3. 设1,2,3表示一等品,4表示二等品。其样本空间就是由1, 2, 3, 4中任意抽取2个的排列构成。设 ( i , j ) (i, j) (i,j)为任一样本点( 1 ≤ i ≠ j ≤ 4 1\leq i\not=j\leq4 1≤i=j≤4),事件 A A A:第一次抽到一等品中的样本点应满足条件 i ≤ 3 i\leq 3 i≤3, B B B:第二次抽到一等品中的样本点应满足 j ≤ 3 j\leq 3 j≤3。 将试验的样本空间及样本空间中样本点结构的约定以及事件A和B应满足的条件反映成如下的Python代码:from sympy.utilities.iterables import variations as permutations#导入permutationsS=set(permutations(range(1,5),2)) #1,2,3为一等品,4为二等品A = setEvent(S, lambda a: a[0] <= 3) #设置事件A:“第1次取得一等品”B = setEvent(S, lambda a: a[1] <= 3) #设置事件B:“第2次取得一等品”p = condP(B, A)print('P(B|A)=%s' % p)
程序的第2行调用permutations函数(第1行导入)设置本试验的样本空间S。第3、4行调用函数setEvent(),设置事件A:“第一次取得一等品”和B:“第2次取得一等品”。第9行调用前面定义的函数condP,计算条件概率P(B|A)。运行程序,输出
P(B|A)=2/3
即为本例的解。
例2 已知在10件产品中有2件次品,从中取两次,每次任取一件,作不放回抽样。计算下列事件的概率。
解: 按不放回抽取方式,从10件产品中(包括2件次品)抽取两次,每次任取一件是一个古典概型。故用Python计算其中随机事件的概率需先考虑样本空间 S S S及其样本点的结构。我们用 1 , 2 , ⋯ , 8 1, 2, \cdots, 8 1,2,⋯,8表示8个正品,9和10表示2个次品。无放回两次抽取产品的样本点可用二元组 ( i , j ) (i, j) (i,j)表示。其中, 1 ≤ i ≠ j ≤ 10 1\leq i\not=j\leq 10 1≤i=j≤10。样本空间 S S S就是由所有这样的二元组构成。设事件 A 1 A_1 A1表示“第一次取到正品”, A 2 A_2 A2表示“第二次取到正品”。则 A 1 A_1 A1中样本点 ( i , j ) (i, j) (i,j)满足条件 i ≤ 8 i\leq8 i≤8, A 2 A_2 A2中样本点 ( i , j ) (i, j) (i,j)满足条件 j ≤ 8 j\leq8 j≤8。下列程序计算概率 P ( A 1 ∩ A 2 ) P(A_1\cap A_2) P(A1∩A2), P ( A ‾ 1 ∩ A ‾ 2 ) P(\overline{A}_1\cap\overline{A}_2) P(A1∩A2), P ( A 1 ∩ A ‾ 2 ∪ A ‾ 1 ∩ A 2 ) = 1 − P ( A 1 ∩ A 2 ) − P ( A ‾ 1 ∩ A ‾ 2 ) P(A1\cap\overline{A}_2\cup\overline{A}_1\cap A_2)=1-P(A_1\cap A_2)-P(\overline{A}_1\cap\overline{A}_2) P(A1∩A2∪A1∩A2)=1−P(A1∩A2)−P(A1∩A2)和 P ( A 2 ) P(A_2) P(A2)。
from sympy.utilities.iterables import variations as permutations#导入permutationsS=set(permutations(range(1,11),2)) #1~8为一等品,9,10为二等品A1=setEvent(S, lambda a: a[0]<=8) #事件A1A2=setEvent(S, lambda a: a[1]<=8) #事件A2A1_=S-A1 #A1的对立事件Ā1A2_=S-A2 #A2的对立事件Ā2p1=P(A1, S)*condP(A2, A1) #P(A1*A2)p2=P(A1_, S)*condP(A2_, A1_) #P(Ā1*Ā2)p3=1-p1-p2 #P(A1*Ā2)+P(Ā1*A2)p4=P(A2_, S) #P(Ā2)print('P(A1*A2)=%s'%p1)print('P(A1_*A2_)=%s'%p2)print('P(A1*A2_)+P(A1_*A2)=%s'%p3)print('P(A2_)=%s'%p4)
程序的第2行完成对样本空间的设置: { 1 , 2 ⋯ , 10 } \{1,2\cdots,10\} { 1,2⋯,10}中任取2个元素的排列。第3~6行设置事件 A 1 A_1 A1, A 2 A_2 A2, A ‾ 1 \overline{A}_1 A1和 A ‾ 2 \overline{A}_2 A2。第7~10行分别计算概率 P ( A 1 ∩ A 2 ) P(A_1\cap A_2) P(A1∩A2), P ( A ‾ 1 ∩ A ‾ 2 ) P(\overline{A}_1\cap\overline{A}_2) P(A1∩A2), P ( A 1 ∩ A ‾ 2 ∪ A ‾ 1 ∩ A 2 ) = 1 − P ( A 1 ∩ A 2 ) − P ( A ‾ 1 ∩ A ‾ 2 ) P(A1\cap\overline{A}_2\cup\overline{A}_1\cap A_2)=1-P(A_1\cap A_2)-P(\overline{A}_1\cap\overline{A}_2) P(A1∩A2∪A1∩A2)=1−P(A1∩A2)−P(A1∩A2)和 P ( A 2 ) P(A_2) P(A2)。第11~14行输出计算所得概率的值。运行程序,输出:
P(A1*A2)=28/45P(A1_*A2_)=1/45P(A1*A2_+A1_*A2)=16/45P(A2_)=1/5
写博不易,敬请支持:
如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!转载地址:http://zhpmz.baihongyu.com/