【教程】如何用编程输出样本空间(Python篇)

在高中数学中,有样本空间这一定义。本文就是用编程输出样本空间的一个实例教程,直接从例题出发,学习了解关于样本空间在编程中的输出(本文为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),请写出这个试验的样本空间.

例2
过程与上方类似,代码与结果如下:

【完整代码】

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’) }

总结

通过以上学习了解,我们可以知道这一类问题的解决方法,实质上就是进行逻辑推理,按照步骤依次写出其代码,最后查找漏洞,解决问题,完善程序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值