Categories:
.NET (357)
C (330)
C++ (183)
CSS (84)
DBA (2)
General (7)
HTML (4)
Java (574)
JavaScript (106)
JSP (66)
Oracle (114)
Perl (46)
Perl (1)
PHP (1)
PL/SQL (1)
RSS (51)
Software QA (13)
SQL Server (1)
Windows (1)
XHTML (173)
Other Resources:
I need a random number generator.
I need a random number generator.
✍: Guest
The Standard C library has one: rand. The implementation on your system may not be perfect, but writing a better one isn't necessarily easy, either.
Here is a portable C implementation of the ``minimal standard'' generator :
#define a 16807
#define m 2147483647
#define q (m / a)
#define r (m % a)
static long int seed = 1;
long int PMrand()
{
long int hi = seed / q;
long int lo = seed % q;
long int test = a * lo - r * hi;
if(test > 0)
seed = test;
else seed = test + m;
return seed;
}
(The ``minimal standard'' is adequately good; it is something ``against which all others should be judged''; it is recommended for use ``unless one has access to a random number generator known to be better.'')
This code implements the generator
X <- (aX + c) mod m
for a = 16807, m = 2147483647 (which is 2**31-1), and c = 0. The multiplication is carried out using a technique described by Schrage, ensuring that the intermediate result aX does not overflow. The implementation above returns long int values in the range [1, 2147483646]; that is, it corresponds to C's rand with a RAND_MAX of 2147483646, except that it never returns 0. To alter it to return floating-point numbers in the range (0, 1), change the declaration to
double PMrand()
and the last line to
return (double)seed / m;
For slightly better statistical properties, now recommend using a = 48271.
2015-08-03, 2171👍, 0💬
Popular Posts:
What is cross page posting? By default, button controls in ASP.NET pages post back to the same page ...
Where Do You Download JUnit? Where do I download JUnit? I don't think anyone will ask this question ...
How To Write a Minimum Atom 1.0 Feed File? - RSS FAQs - Atom Feed Introduction and File Generation I...
What is continuous and staged representation? CMMI contains 25 key process areas which organization ...
What is cross page posting? By default, button controls in ASP.NET pages post back to the same page ...