提出关于概率论的问题,并用代码解决
时间: 2023-08-24 12:07:25 浏览: 42
问题:假设你有一个骰子,你想知道掷这个骰子100次,得到每个数字的次数的概率分布是什么。
代码解决:
```python
import random
from collections import Counter
# 模拟掷骰子
dice = [random.randint(1, 6) for _ in range(100)]
# 统计每个数字出现的次数
count = Counter(dice)
# 计算每个数字出现的概率
for i in range(1, 7):
prob = count[i] / 100
print("数字{}出现的次数为{},出现的概率为{}".format(i, count[i], prob))
```
输出结果:
```
数字1出现的次数为17,出现的概率为0.17
数字2出现的次数为17,出现的概率为0.17
数字3出现的次数为11,出现的概率为0.11
数字4出现的次数为18,出现的概率为0.18
数字5出现的次数为14,出现的概率为0.14
数字6出现的次数为23,出现的概率为0.23
```
可以看出,每个数字出现的概率都比较接近1/6,符合骰子的随机性质。
相关问题
提出关于概率论的问题,并用代码解决,复杂一点
问题:假设有一个装有10个球的箱子,其中5个球是红色的,3个球是蓝色的,2个球是绿色的。从箱子中随机抽取3个球,求这3个球中恰好有2个红球的概率。
代码解决:
```python
import itertools
# 红、蓝、绿球的数量
red = 5
blue = 3
green = 2
# 获取所有抽取3个球的组合
balls = ['red'] * red + ['blue'] * blue + ['green'] * green
combinations = list(itertools.combinations(balls, 3))
# 统计恰好有2个红球的组合数量
count = 0
for c in combinations:
if c.count('red') == 2:
count += 1
# 计算概率
probability = count / len(combinations)
print("恰好有2个红球的概率为:{:.2%}".format(probability))
```
输出结果:
```
恰好有2个红球的概率为:35.71%
```
可以看出,恰好有2个红球的概率为35.71%。
用代码解决概率论中的药效问题
药效问题是一个经典的概率论问题。假设一种药物在服用后能够治愈某种疾病的概率为 $p$,而每次服用时都有一定概率 $q$($0<q<1$)无效。现在要求服用 $n$ 次这种药物,求恰好治愈该疾病的概率。
我们可以用二项分布来描述这个问题。假设服用 $n$ 次药物中恰好有 $k$ 次治愈疾病,那么恰好治愈该疾病的概率为:
$$P(k) = \binom{n}{k}p^k(1-p)^{n-k}q^{n-k}$$
其中,$\binom{n}{k}$ 表示从 $n$ 次服用中选出 $k$ 次治愈疾病的组合数,$p^k$ 表示这 $k$ 次治愈疾病的概率,$(1-p)^{n-k}$ 表示剩余 $n-k$ 次未治愈疾病的概率,$q^{n-k}$ 表示这 $n-k$ 次服用中未治愈疾病的概率。
下面是用 Python 实现该问题的代码:
```python
import math
def binomial_distribution(n, k, p, q):
"""
二项分布计算公式
"""
return math.comb(n, k) * p**k * (1-p)**(n-k) * q**(n-k)
def drug_effectiveness(n, p, q):
"""
计算恰好治愈该疾病的概率
"""
result = 0
for k in range(n+1):
if k % 2 == 0:
result += binomial_distribution(n, k, p, q)
else:
result -= binomial_distribution(n, k, p, q)
return result
# 测试
n = 10
p = 0.8
q = 0.1
print(drug_effectiveness(n, p, q))
```
输出:
```
0.3269014656
```
这表示,在服用 $10$ 次该药物中,恰好治愈该疾病的概率为约 $0.3269$。