舍选法生成随机数python
时间: 2023-11-05 20:04:29 浏览: 311
Random_no
舍选法(Rejection Sampling)是一种生成服从指定概率分布的随机数的方法。在Python中,我们可以按照以下步骤实现舍选法生成随机数:
1. 创建一个函数,该函数能够生成在指定区间内均匀分布的随机数。
2. 创建一个函数,该函数能够根据给定的概率密度函数,生成符合指定概率分布的随机数。
3. 在主程序中,使用舍选法从上述函数中生成符合指定概率分布的随机数。
以下是一个示例代码,演示了如何使用舍选法生成满足p(x)=1/2 x,x∈[0,1]概率密度函数的随机数:
```python
import random
def uniform_random():
# 生成在[0,1]内均匀分布的随机数
return random.uniform(0, 1)
def target_distribution(x):
# 给定的概率密度函数 p(x)=1/2 x,x∈[0,1]
return 0.5 * x
def rejection_sampling():
while True:
x = uniform_random()
y = uniform_random()
if y <= target_distribution(x):
return x
# 使用舍选法生成随机数
random_number = rejection_sampling()
print(random_number)
```
阅读全文