Solved

Gaussian distributed pseudorandom number generator

Posted on 2010-08-30
4
557 Views
Last Modified: 2013-11-13
Suppose X is a uniform random variable in the interval [0,1), how do I transform it so as to form a Gaussian distribution?

Thanks
0
Comment
Question by:InteractiveMind
4 Comments
 
LVL 73

Assisted Solution

by:sdstuber
sdstuber earned 50 total points
ID: 33561993
easiest way is to probably to sum groups of the random  numbers.  The central limit theorem dictates the sums should be a normal distribution
0
 
LVL 32

Accepted Solution

by:
phoffric earned 200 total points
ID: 33561994
0
 
LVL 2

Assisted Solution

by:wslb
wslb earned 50 total points
ID: 33569444
As phoffric (give him most of the credit) says, http://www.bearcave.com/misl/misl_tech/wavelets/hurst/random.html
But here are the details you want:
You call your random number X, int he code below, each call to randf() returns another pseudorandom number.  If you're not used to c programming, note the the point of the

do {...} while while ( w >= 1.0 );

part is to keep trying the {..} portion until you get a w<1.  Once you have x1 and x2 that result in w<1, then you use them to calculate the Gaussina-distributed pseudorandom number y1.
  // from http://www.taygeta.com/random/gaussian.html
  // Algorithm by Dr. Everett (Skip) Carter, Jr.

         float x1, x2, w, y1, y2;
 
         do {
                 x1 = 2.0 * ranf() - 1.0;
                 x2 = 2.0 * ranf() - 1.0;
                 w = x1 * x1 + x2 * x2;
         } while ( w >= 1.0 );

         w = sqrt( (-2.0 * ln( w ) ) / w );
         y1 = x1 * w;

Open in new window

0
 
LVL 4

Assisted Solution

by:boocko
boocko earned 200 total points
ID: 33584092
0

Featured Post

PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

What is Waterfall Model? Waterfall model is the classic Software Development Life Cycle method practiced in software development process. As the name "waterfall" describes, this development is flowing downwards steadily like waterfall, i.e., procee…
Introduction Many of the most common information processing tasks require sorting data sets.  For example, you may want to find the largest or smallest value in a collection.  Or you may want to order the data set in numeric or alphabetical order. …
This is a video describing the growing solar energy use in Utah. This is a topic that greatly interests me and so I decided to produce a video about it.
Although Jacob Bernoulli (1654-1705) has been credited as the creator of "Binomial Distribution Table", Gottfried Leibniz (1646-1716) did his dissertation on the subject in 1666; Leibniz you may recall is the co-inventor of "Calculus" and beat Isaac…

770 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question