gpt4 book ai didi

python - 使用给定的概率密度函数生成随机数

转载 作者:太空狗 更新时间:2023-10-29 21:39:52 26 4
gpt4 key购买 nike

我想指定 probability density function一个分布,然后在 Python 中从该分布中选取 N 个随机数。我该怎么做?

最佳答案

一般来说,您想要逆累积概率密度函数。一旦你有了它,那么沿着分布生成随机数就很简单了:

import random

def sample(n):
return [ icdf(random.random()) for _ in range(n) ]

或者,如果您使用 NumPy:

import numpy as np

def sample(n):
return icdf(np.random.random(n))

在这两种情况下,icdf 都是逆累积分布函数,它接受 0 到 1 之间的值,并根据分布输出相应的值。

为了说明icdf 的性质,我们将以值 10 和 12 之间的简单均匀分布为例:

  • 概率分布函数在 10 到 12 之间为 0.5,其他地方为零

  • 累积分布函数在 10 以下为 0(没有低于 10 的样本),在 12 以上为 1(没有样本超过 12)并且在值之间线性增加(PDF 的积分)

  • 逆累积分布函数只定义在 0 和 1 之间。0 时为 10,12 时为 1,并且在值之间呈线性变化

当然,困难的部分是获得逆累积密度函数。这真的取决于你的分布,有时你可能有一个分析函数,有时你可能想求助于插值。数值方法可能会有用,因为数值积分可用于创建 CDF,插值可用于反转它。

关于python - 使用给定的概率密度函数生成随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25471457/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com