Solved

Gaussian distributed pseudorandom number generator

Posted on 2010-08-30
4
553 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

6 Surprising Benefits of Threat Intelligence

All sorts of threat intelligence is available on the web. Intelligence you can learn from, and use to anticipate and prepare for future attacks.

Join & Write a Comment

One of the most frequent problems a "newbie" developer may encounter is having to deal with different data formats. One for all: THE DATE We, as humans, need to "see" a date and then interpret it (much of the times this is an automatic operation)…
Introduction This article explores the design of a cache system that can improve the performance of a web site or web application.  The assumption is that the web site has many more “read” operations than “write” operations (this is commonly the ca…
Excel styles will make formatting consistent and let you apply and change formatting faster. In this tutorial, you'll learn how to use Excel's built-in styles, how to modify styles, and how to create your own. You'll also learn how to use your custo…
This tutorial demonstrates a quick way of adding group price to multiple Magento products.

708 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

Need Help in Real-Time?

Connect with top rated Experts

19 Experts available now in Live!

Get 1:1 Help Now