Python 在指数分布上生成随机数的简单说明/示例
我有1到10的整数。我想根据x^2的分布选择一个 我想要的是:Python 在指数分布上生成随机数的简单说明/示例,python,probability,Python,Probability,我有1到10的整数。我想根据x^2的分布选择一个 我想要的是: def random_from_exp(min, max, exponent): ... 我不熟悉数学或统计数据,也不知道如何在上述问题的背景下解释之前对这个问题的答案(lambdas、倒数等等)。请提供一个简单的解释和一个例子。如果我是对的,你想简单地生成一个指数函数(x^2)上的数字,并且在0到10之间 这很简单。获取一个从0到10的平方根的随机数,并将其平方 import random import math prin
def random_from_exp(min, max, exponent):
...
我不熟悉数学或统计数据,也不知道如何在上述问题的背景下解释之前对这个问题的答案(lambdas、倒数等等)。请提供一个简单的解释和一个例子。如果我是对的,你想简单地生成一个指数函数(x^2)上的数字,并且在0到10之间 这很简单。获取一个从0到10的平方根的随机数,并将其平方
import random
import math
print random.uniform(0, math.sqrt(10))**2
或者在您的情况下:
# I have no idea what the exp means. I'm assuming it means exponent.
def random_from_exp(min, max, exp):
return random.uniform(min, math.sqrt(max))**exp
这将打印(分钟)“我想根据x^2的分布选择一个。”我不太明白。你真的想根据x^2的分布生成数据吗?这不是通常所说的指数分布。也许这还不清楚。我想要的是基于x^2的加权选择。所以5的权重为25;10的权重为100。解决方案是生成这些权重吗随机加权选择算法中的ngs?您正在寻找的正是:您可能还会发现这一点很有用:它不是将随机数平方,而是将随机数用作幂。@cyrus:您想生成随机整数还是浮点值?谢谢!值的分布实际上是颠倒的(所以选择的“10”最少)。从最大值中减去该值似乎有效。@cyrus当x均匀分布时,x^2的分布实际上是1/21/sqrt(x).也许1-x^2对你也有用。上面Nitish给出的链接告诉你如何获得正确的分布,如果这很重要的话。我想在这里展示的一点是,如果你能够生成你需要的值范围,那么你可以将它提供给一个函数。如果你想生成一组没有rmal分发,我相信scikit肯定会有一种方法来做到这一点。这将帮助您: