概率统计Python计算:随机事件的Python表示

在这里插入图片描述
随机试验有确定的样本空间,样本空间是试验的所有样本点的集合,随机事件是样本空间的子集合。所以,要在计算机上表示随机试验和随机事件,应能表示集合。Python 为我们提供了一个表示集合的数据结构set。这个set 类的对象和数学中的集合一样,所包含的数据元素不重复。

函数名或运算符功能参数意义
set(x)创建集合x表示初始化数据,可以是set对象也可以是list对象。缺省为空集。A=set({2,3}),B=set([2,3,4,5])
add(x)向集合添加元素x表示欲添加的元素A.add(4)
|集合的并运算∪A|B 为{2,3,4,5}
&集合的交运算∩A&B 为{2,3,4}
-集合的差运算-B-A 为{5}
<=子集关系⊆A<=B为True
==集合的相等关系A==B为False

例1 考虑抛掷一枚6面体骰子,观察出现的点数的随机试验。设 A 1 A_1 A1表示事件“出现偶数点”,即 A 1 = { 2 , 4 , 6 } A_1=\{2, 4, 6\} A1={2,4,6} A 2 A_2 A2表示事件“出现的点数不超过3”,即 A 2 = { 1 , 2 , 3 } A_2=\{1, 2, 3\} A2={1,2,3}。用Python中set的对象来表示相关的随机事件及其运算 A 1 ∪ A 2 A_1\cup A_2 A1A2 A 1 ∩ A 2 A_1\cap A2 A1A2 A 1 − A 2 A_1-A_2 A1A2 A ‾ 1 \overline{A}_1 A1,并验证 A 1 ∪ A 2 ‾ = A ‾ 1 ∩ A ‾ 2 \overline{A_1\cup A_2}=\overline{A}_1\cap\overline{A}_2 A1A2=A1A2 A 1 ∩ A 2 ‾ = A ‾ 1 ∪ A ‾ 2 \overline{A_1\cap A_2}=\overline{A}_1\cup\overline{A}_2 A1A2=A1A2
:下列程序完成本题所有要求。

S=set({1, 2, 3, 4, 5, 6})                       #全集S(样本空间)
A1=set([2, 4, 6])                               #S的子集A1(随机事件:偶数点)
A2=set([1, 2, 3])                               #A2:点数不超过3
print('S=%s:抛掷骰子的样本空间.'%S)
print('A1=%s:偶数点.'%A1)
print('A2=%s:点数不超过3.'%A2)
print('A1+A2=%s:偶数点或点数不超过3.'%(A1|A2))   	#A1∪A2:偶数点或点数不超过3
print('A1*A2=%s:不超过3的偶数点.'%(A1&A2))       	#A1∩A2:不超过3的偶数点
print('A1-A2=%s:超过3的偶数点.'%(A1-A2))         	#超过3的偶数点
print('Ā1=%s:奇数点.'%(S-A1))                    #A1的补集(A1的对立事件)
print('(A1+A2)_=Ā1*Ā2 is %s.'%(S-(A1|A2)==(S-A1)&(S-A2)))
print('(A1*A2)_=Ā1+Ā2 is %s.'%(S-(A1&A2)==(S-A1)|(S-A2)))

程序的第1~3行调用函数set创建set类对象S、A1和A2。注意,传递给set函数的只有一个参数:或是set类对象,如第1行(set类对象的常量用一对花括弧,囊括各个元素)。或是list类对象,如第2、3行(list类对象的常量用一对方括弧,囊括各个元素)。第4~12行调用函数print输出各事件及各种运算结果。注意,print函数只接受了1个参数,但需要在输出计算结果的同时还需输出一些注释性信息。为此,要用到格式输出串:以第4行输出作为样本空间的集合S为例,传递给print的参数是
’S=%s:抛掷骰子的样本空间’%S \text{'S=\%s:抛掷骰子的样本空间'\%S} ’S=%s:抛掷骰子的样本空间’%S
这就是一个格式串,单引号内的%s称为格式占位符,它表明以字符串格式(百分号后面的s指定)在此位置输出单引号外面的紧随着的以百分号开头的表达式,此例中就是%S,即按字符串格式输出集合S。
Python用#作为行内注释的标志,读者可根据程序中的注释信息了解该程序的代码意义。
需要说明的是由于程序代码中不能直接输入、输出 ∪ \cup ∩ \cap ,我们约定用“+”和“*”分别替代。第11、12行是在验证德.摩根律:
( A 1 ∪ A 2 ) ‾ = A ˉ 1 ∩ A ˉ 2 \overline{(A_1\cup A_2 )}=\bar{A}_1\cap\bar{A}_2 (A1A2)=Aˉ1Aˉ2 ( A 1 ∩ A 2 ) ‾ = A ˉ 1 ∪ A ˉ 2 \overline{(A_1\cap A_2 )}=\bar{A}_1\cup\bar{A}_2 (A1A2)=Aˉ1Aˉ2。由于在程序中字符串无法表示表达式 ( A 1 ∪ A 2 ) ‾ \overline{(A_1\cup A_2 )} (A1A2)用(A1+A2)_代之。相仿地,用(A1*A2)_来代表表达式 ( A 1 ∩ A 2 ) ‾ \overline{(A_1\cap A_2 )} (A1A2)
运行程序,输出:

S={1, 2, 3, 4, 5, 6}:抛掷骰子的样本空间
A1={2, 4, 6}:偶数点
A2={1, 2, 3}:点数不超过3
A1+A2={1, 2, 3, 4, 6}:偶数点或点数不超过3
A1*A2={2}:不超过3的偶数点
A1-A2={4, 6}:超过3的偶数点
Ā1={1, 3, 5}:奇数点
(A1+A2)_=Ā1*Ā2 is True
(A1*A2)_=Ā1+Ā2 is True

写博不易,敬请支持:
如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!
代码诚可贵,原理价更高。若为AI学,读正版书好
返回《导引》

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值