I have forgotten
my Password

Or login with:

  • Facebookhttp://facebook.com/
  • Googlehttps://www.google.com/accounts/o8/id
  • Yahoohttps://me.yahoo.com
get GPL
COST (GBP)
this unit 1.98
sub units 0.00
+
0

Wich Hill

Random number generator class using the Wichmann-Hill algorithm.
Controller: CodeCogs

Interface

C++

Class WichHill

This class produces very good quality random numbers using the Wichmann-Hill algorithm. It produces uniformly distributed pseudo-random 32-bit values with period of

To give you an idea of the running time for each of the functions, here are the results for generating 100,000,000 random numbers on a 750MHz microprocessor :
  • genReal 18 seconds
  • genInt 44 seconds

MISSING IMAGE!

1/wichhill-378.png cannot be found in /users/1/wichhill-378.png. Please contact the submission author.

floating point random numbers in the (0, 1) interval and then plotting them one versus the other. It shows that the distribution is indeed uniform.

References:

  • B.A. Wichmann and I. D. Hill (1982). Algorithm AS 183: "An Efficient and Portable Pseudo-random Number Generator", Applied Statistics, 31, 188-190; Remarks: 34,p.198 and 35, p.89.
  • The Newran03 random number generator library of Robert Davies, http://www.robertnz.net/nr03doc.htm

Example 1

The following example displays 20 random large integers. Obviously the output will always be the same as the seed of the generator A never changes.
#include <iostream>
#include <codecogs/statistics/random/wichhill.h>
 
int main() {
    Stats::Random::WichHill A(0.146);
 
    for (int i = 0; i < 20; ++i)
        std::cout << A.genInt() << std::endl;
   return 0;
}

Authors

Lucian Bentea (August 2005)
Source Code

Source code is available when you agree to a GP Licence or buy a Commercial Licence.

Not a member, then Register with CodeCogs. Already a Member, then Login.

Members of WichHill

WichHill

 
WichHilldoubles = 0.46875 )[constructor]
sDefault value = 0.46875

GenReal

 
doublegenReal )
//! Generates an uniform floating point number in the (0, 1) interval (endpoints are excluded). /*!

SetSeed

 
voidsetSeeddoubles )
sSeed must be in the (0, 1) interval (endpoints are excluded).