# Random number generator

hello , i wanted to get a random number generator for colored as well as white noise. all numbers in the range should be equally likely to be produced.. ie, say within 1-100, 50 shouldnt hav an extra high probability. on the net i found this fortran program.
http://fortran.com/gauss_random

when i run it and plot the random numbers , i see that more numbers are clustered at the mean. gaussian sort of distribution.

can i get some where or some how a flat distribution ??

You want the good old regular random generator that produces a flat distribution. I don't know what it's called in fortran, but random() is a good bet. As you've noticed, the one you picked makes a "normal" or gaussian distribution which is useful for simulating test scores and stuff like that.

rcgldr
Homework Helper
If you don't need a huge number of random numbers, you can download one of those programs that quicky generates e or pi to millions of digits with an optional binary output, then use that binary file as large array of random numbers. I used apfloat's (do a web search) aptest program to generate pi in hex, then converted that to binary with my own program.

On a side note, if you wnat a Gausian (normal) distribution, based on evenly distributed random numbers, you can sum them up in groups of 8 to get a good approximate bell curve. Summing 2 two at a time will produce a triangle shape curve with a peak in the middle. Summing 3 or more will start to produce a bell like curve, and with 8 at a time or more, it starts to get pretty close.

thanks.. but i already have random number generator for 'white noise'.. if any one has used 'colored noise' random number generator in his/her project or work, then plz let me know where i can find that program. thanks..

in c++

Code:
#include <iostream>
#include <ctime>
#include <cstdlib>

using namespace std;

int main() {
int x;
srand((unsigned) time(NULL));
x = (rand() %100) + 1;
cout << x << endl;
}

x = (rand() %100) + 1 => you can change the "100" into any number you want to be the highest possible number to generate - min number. You also can manipulate the min num by change the "1" , into the min number + 1 , ex : if the range that you want is 53 until 100 => x = (rand() %47) +54;

DrGreg