How to generate a Guassion Sample data?

F

fAnSKyer

When using random we can get a uniform data sample. But how to transfer
this sample in to a Guassion Sample? Thanks? Did C or C++ provide any
function to do this?

Thanks a lot.

Cheers. fAnS.
 
B

Ben Pfaff

fAnSKyer said:
When using random we can get a uniform data sample. But how to transfer
this sample in to a Guassion Sample? Thanks? Did C or C++ provide any
function to do this?

This is in the C FAQ.

13.20: How can I generate random numbers with a normal or Gaussian
distribution?

A: Here is one method, recommended by Knuth and due originally to
Marsaglia:

#include <stdlib.h>
#include <math.h>

double gaussrand()
{
static double V1, V2, S;
static int phase = 0;
double X;

if(phase == 0) {
do {
double U1 = (double)rand() / RAND_MAX;
double U2 = (double)rand() / RAND_MAX;

V1 = 2 * U1 - 1;
V2 = 2 * U2 - 1;
S = V1 * V1 + V2 * V2;
} while(S >= 1 || S == 0);

X = V1 * sqrt(-2 * log(S) / S);
} else
X = V2 * sqrt(-2 * log(S) / S);

phase = 1 - phase;

return X;
}

See the extended versions of this list (see question 20.40) for
other ideas.

References: Knuth Sec. 3.4.1 p. 117; Marsaglia and Bray,
"A Convenient Method for Generating Normal Variables";
Press et al., _Numerical Recipes in C_ Sec. 7.2 pp. 288-290.
 
M

Martin Ambuhl

fAnSKyer said:
When using random we can get a uniform data sample. But how to transfer
this sample in to a Guassion Sample? Thanks? Did C or C++ provide any
function to do this?

It is not only a good idea to check the FAQ before posting to a
newsgroup, but it is the behavior expected from civilized posters. In
this case you would have found question 13.20 at
<http://c-faq.com/lib/gaussian.html>.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,055
Latest member
SlimSparkKetoACVReview

Latest Threads

Top