python - 服从一定分布的随机数

标签 python random probability

我遇到了一个问题。我必须在 python 中实现一个算法,它需要一个随机数 X,例如 Pr[X ≥ k] = 1/k。我不知道是否已经存在可以给我这个确切值的分布,或者是否有办法使用简单的随机 python 库来实现这个随机生成器。有没有办法做到这一点?预先感谢您的帮助!

最佳答案

最简单的尝试就是让

X = 1.0 / random.random()

但是,random.random() 的值可以为零,因此这可能会导致被零除错误。根据文档,该值永远不能为 1.0,因此请使用

X = 1.0 / (1.0 - random.random())

对于这个分布,

Pr[X ≥ k] = Pr[0 < 1/X ≤ 1/k]

= Pr[0 < 1 - random.random() ≤ 1/k]

= Pr[1 - 1/k ≤ random.random() < 1]

= 1 - (1 - 1/k) {因为 random() 在 [0,1) 中是均匀的并且 [1-1/k, 1) 是一个子区间}

= 1/k

(我希望我可以在这里使用 MathJax!)当然,所有这些都假设 k ≥ 1,否则你的条件就没有意义了。我还假设 X 是一个连续的随机变量,从 1 到无穷大。如果X是一个正整数(因此k也是一个正整数),就取我给出的公式的底数。

关于python - 服从一定分布的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38675845/

相关文章:

python - SciPy - 子类化 rv_continuous 时出现 'Object too deep for desired array'

tree - 使用树输出在 Spark 中的梯度提升树的情况下预测类的概率

java - 如何将连续请求分配给两台服务器,其中 x% 的请求发送到一台服务器,100-x 的请求发送到另一台服务器

Python凯撒密码解码器

python - 如何通过图形化的 sudo 在 python 中获得 root 权限?

string - 从给定字符生成固定长度的随机字符串的内置方法

c - 对于我们在 C 中使用 time(NULL) 来生成 =random 值

python - 除了一页上的一个 CSS 列表外,不抓取所有请求的数据

python - 在终止 python 程序时做一些事情

python-3.x - 在 Python 中使用 pymc 随机化网络