Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在指数分布上生成随机数的简单说明/示例_Python_Probability - Fatal编程技术网

Python 在指数分布上生成随机数的简单说明/示例

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

我有1到10的整数。我想根据x^2的分布选择一个

我想要的是:

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肯定会有一种方法来做到这一点。这将帮助您: