python - 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
解决方案
Brodaly 说,你想要的是:
- 写出累积函数 F
- 写出它的倒数,F_inv
- 运行 F_inv(x)。这将为您提供分布中的随机数。
如果你不能分析地做第一步(),你至少可以用给定的分辨率在数字上做它,这样你就不会被一些不确定的东西卡住。
推荐阅读
- node.js - Puppeteer querySelector 返回 null
- c# - 带有 ASP.NET Core 和完整 .NET Framework (.NET 4.7) 的简单注入器
- webpack - webpack 的“NormalModuleReplacementPlugin”中相对“newResource”的预期行为是什么?
- php - 无法使用php重定向到登录页面
- java - 如何在折叠工具栏布局时使对象保持不变?
- magento2 - 在 Magento 2 中禁用运输方式
- json - 使用 Swift 4 解码嵌套的 JSON
- javascript - gl.texImage2D 适用于 Image,但不适用于 ImageData
- javascript - 如何通过导入的 momentjs 为 angularjs-bootstrap-datetimepicker 设置语言环境
- python - Python - 为什么我的数字没有正确存储