I have forgotten
my Password

Or login with:

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

Wich Hill

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



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

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.


  • 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;


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


WichHilldoubles = 0.46875 )[constructor]
sDefault value = 0.46875


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


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