Question

In a Python program, I need to generate normally-distributed random numbers with a specific, user-controlled variance. How can I do this?

Was it helpful?

Solution

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.

OTHER TIPS

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top