In a Python program, I need to generate normally-distributed random numbers with a specific, user-controlled variance. How can I do this?
import math
from random import gauss
my_mean = 0
my_variance = 10
random_numbers = [gauss(my_mean, math.sqrt(my_variance)) for i in range(100)]
This gets you 100 normally-distributed random numbers with mean 0 and variance 10.
Use random.normalvariate
(or random.gauss
if you don't need thread-safety), and set the sigma
argument to the square root of the variance.
来源:https://stackoverflow.com/questions/8815706/random-number-with-specific-variance-in-python