编写一个程序,模拟滚动一对六面骰子1000次,统计滚动出来的数值出现的次数,最小值为2(两个骰子均为1),最大值为12(两个骰子均为6),计算每个数值出现的频率,并与每个数值的期望频率进行对比,用py
时间: 2024-12-20 07:17:09 浏览: 12
当然可以。在Python中,我们可以创建一个简单的程序来模拟这个过程。首先,我们需要导入必要的库,然后定义一个函数来模拟掷骰子并记录结果,最后统计频率并计算期望频率。以下是示例代码:
```python
import random
# 定义骰子面数和结果列表
sides = 6
results = [i for i in range(2, 13)] # 遍历从2到12的所有可能结果
def roll_dice():
return random.choices(results, k=2) # 掷两次骰子,返回一个包含两个随机数的结果
# 初始化计数器和总投掷次数
counter = {result: 0 for result in results}
total_rolls = 1000
# 进行1000次模拟投掷
for _ in range(total_rolls):
roll_result = roll_dice()
counter[roll_result] += 1
# 计算频率(每种结果出现的次数除以总投掷次数)
frequencies = {result: count / total_rolls for result, count in counter.items()}
# 计算理论期望频率,每次都是独立事件,所以每个结果的概率都是 (1/6)^2 = 1/36
expected_frequencies = {result: 1/36 for result in results}
# 对比实际频率和期望频率
comparison = {result: frequencies[result] - expected_frequencies[result] for result in results}
# 打印结果
print("实际频率:", frequencies)
print("期望频率:", expected_frequencies)
print("频率差值:", comparison)
阅读全文