首页 > 解决方案 > Python:如何从分布中选择一个值?

问题描述

我想从分布中选择对应的值

我的分布遵循截断的 Levy 分布

x = [(r + r0)**(-a)] * exp(−r/κ)

功能是

def levy(r0, a, k, r):
    return (r + r0)**(-a)*exp(-r/k)

我想为给定的随机数x找到相对的r.

例如

r0 = 100  
a = 2
k = 1500

import random
x = random.uniform(0, 1)
### Write a function to find r given x

标签: pythondistribution

解决方案


Brodaly 说,你想要的是:

  • 写出累积函数 F
  • 写出它的倒数,F_inv
  • 运行 F_inv(x)。这将为您提供分布中的随机数。

如果你不能分析地做第一步(),你至少可以用给定的分辨率在数字上做它,这样你就不会被一些不确定的东西卡住。


推荐阅读