I want to write a method in C# to generate a random number with gaussian distributes in range [0:1]
( and in advance in [0-x] ) .
I found this code but not work correctly
Random rand = new Random(); //reuse this if you are generating many
double u1 = rand.NextDouble(); //these are uniform(0,1) random doubles
double u2 = rand.NextDouble();
double randStdNormal = Math.Abs( Math.Sqrt(-2.0 * Math.Log(u1)) *
Math.Sin(2.0 * Math.PI * u2));
I wrote a blog post on how to generate random numbers with any given distribution:
http://ericlippert.com/2012/02/21/generating-random-non-uniform-data/
Summing up, the algorithm you want is:
Of course if you already know the quantile function for your desired distribution then you don't need to do steps one through three.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With