本文目录:
引
在高中数学中,有样本空间这一定义。本文就是用编程输出样本空间的一个实例教程,直接从例题出发,学习了解关于样本空间在编程中的输出(本文为Python篇)。
【例1】连续掷3枚硬币,观察落地后这3枚硬币出现正面还是反面,请写出这个试验的样本空间.
因此准备三组数据,内容分别为“正”和“反”。
lst1 = ['正','反']
lst2 = ['正','反']
lst3 = ['正','反']
对于第一小题,我们需要将每一种情况进行排列,最终实现这样的效果:
Ω = { (‘正’, ‘正’, ‘正’),(‘正’, ‘正’, ‘反’),(‘正’, ‘反’, ‘正’),(‘正’, ‘反’, ‘反’),(‘反’, ‘正’, ‘正’),(‘反’, ‘正’, ‘反’),(‘反’, ‘反’, ‘正’),(‘反’, ‘反’, ‘反’) }
因此需要使用内置模块itertools来获取两组数据的全组合。
首先导入itertools模块;
import itertools
再运用product函数将其全组合,并用 列表 形式保存在combinations变量中;
combinations = list(itertools.product(lst1, lst2, lst3))
最后运用遍历将其输出。
for i in combinations:
print(i,end = " ")
此时的运行结果为
(‘正’, ‘正’, ‘正’) (‘正’, ‘正’, ‘反’) (‘正’, ‘反’, ‘正’) (‘正’, ‘反’, ‘反’) (‘反’, ‘正’, ‘正’) (‘反’, ‘正’, ‘反’) (‘反’, ‘反’, ‘正’) (‘反’, ‘反’, ‘反’)
为了将其改为标准格式(集合样式),故分以下几步进行:
1.输出“前缀”
print("Ω = { ",end = "")
2.输出数据
- 输出数据时,因为要展现集合元素的分隔符号“,”,因此我们会使用print函数中“ end = ‘,’ ”来实现并排输出。
- 但是需要注意,最后一个数据时之后是没有逗号的,故最后一个数据应当与“后缀”一起输出(或另外加一行输出)。
具体实现步骤如下:运用for循环得到索引所需要的“序列号”——对于对应位置的序列数为多少,可用 len( )函数 计算长度来确定,然后在通过列表索引输出数据。
for i in range(len(combinations) -1):
print(combinations[i],end = ",")
3.输出“后缀”
- 列表最后一个数据的索引值为-1,故用“-1”索引输出最后一个数据,再输出“后缀”。
print(combinations[-1],"}",end = "")
【完整代码】
import itertools
lst1 = ['正','反']
lst2 = ['正','反']
lst3 = ['正','反']
combinations = list(itertools.product(lst1, lst2, lst3))
print("Ω = { ",end = "")
for i in range(len(combinations) -1):
print(combinations[i],end = ",")
print(combinations[-1],"}",end = "")
【例2】 同时转动如图所示的两个转盘,记转盘①得到的数为x,转盘②得到的数为y,结果为(x,y),请写出这个试验的样本空间.
过程与上方类似,代码与结果如下:
【完整代码】
import itertools
lst1 = [1,2,3,4]
lst2 = [1,2,3,4]
combinations = list(itertools.product(lst1, lst2))
print("Ω = { ",end = "")
for i in range(len(combinations) -1):
print(combinations[i],end = ",")
print(combinations[-1],"}",end = "")
【运行结果】
Ω = { (1, 1),(1, 2),(1, 3),(1, 4),(2, 1),(2, 2),(2, 3),(2, 4),(3, 1),(3, 2),(3, 3),(3, 4),(4, 1),(4, 2),(4, 3),(4, 4) }
【拓展】 运用这一原理,还可以实现孟德尔定律的结果展现
对子一代自交形成子二代的过程,可以用以下代码来实现:
【完整代码】
import itertools
lst1 = ['D','d']
lst2 = ['D','d']
combinations = list(itertools.product(lst1, lst2))
print("F2 = { ",end = "")
for i in range(len(combinations) -1):
print(combinations[i],end = ",")
print(combinations[-1],"}",end = "")
【运行结果】
F2 = { (‘D’, ‘D’),(‘D’, ‘d’),(‘d’, ‘D’),(‘d’, ‘d’) }
总结
通过以上学习了解,我们可以知道这一类问题的解决方法,实质上就是进行逻辑推理,按照步骤依次写出其代码,最后查找漏洞,解决问题,完善程序。