Tuesday, November 13, 2007

Pseudo random number generators - uniform and non-uniform distributions

perfect one!!!! contain many generators!!!

http://www.agner.org/random/

This page contains software libraries for some very good random number generators.

The basic random number generators make floating point or integer random numbers with uniform distributions. This code is available in C++ and assembly language.

The non-uniform random number generators make random variates with the following distributions:
normal, bernoulli, poisson, binomial, hypergeometric, Wallenius' and Fisher's noncentral hypergeometric, multinomial, multivariate hypergeometric, Wallenius' and Fisher's multivariate noncentral hypergeometric, and shuffling. This code is available in C++ language.

Code examples are included, showing how to use these software libraries.

The uniform random number generators are also available as ready-to-use library files which can be linked into projects in many different programming languages under Windows, Linux, BSD and other operating systems on the PC platform. These libraries are coded in assembly language for improved speed.

These generators are intended for Monte Carlo applications, not for cryptographic applications.

Download packages:

Uniform random number generators in C++
Description: C++ class library containing the following random number generators: Mersenne twister and Mother-of-all. Can generate floating point or integer random numbers with uniform distribution, and random bits. Very good randomness, high resolution, extremely long cycle lengths, and high speed. Example included.
Also includes assembly language implementations for x86-based systems for improved speed.
System requirements: Any C++ compiler, any operating system.
Further description and instructions
Description of Mother-of-all generator
File name: randomc.zip, size: 102418, last modified: 2007-Sep-23.
Download C++ random number generators.
Non-uniform random number generators in C++
Description: C++ class library generating random numbers with the following distributions: normal, bernoulli, poisson, binomial, hypergeometric, Wallenius' and Fisher's noncentral hypergeometric, multinomial, multivariate hypergeometric, and multivariate Fisher's and Wallenius' noncentral hypergeometric distributions. A function for shuffling numbers is also included, as well as C++ examples showing how to use these functions for simulating evolution and for other purposes.
Most of the functions are fast and accurate, even for extreme values of the parameters.
You have the choice of using any of the uniform random number generators listed above (C++ or assembly) as base for these non-uniform random number generators.
Further description and instructions.
Definition of distributions pdf format.
Wallenius' noncentral hypergeometric distribution theory.
Theoretical description of sampling methods used pdf format.
File name: stocc.zip, size: 262823, last modified: 2007-Sep-23.
Download non-uniform random number generators.
List of random numbers
Description: A list of 10000 random numbers generated with a combined generator.
File name: 10000ran.zip, size: 49098, last modified: 2005-May-24.
Download 10000 random numbers.
R package for noncentral hypergeometric distributions
Description: Package for the R language (www.r-project.org) for calculating the various noncentral hypergeometric distributions. Useful for biased urn models, models of biased sampling and evolution by natural selection.
Package name: BiasedUrn, last modified: 2007-Jun-16.
BiasedUrn.

Comments to the theory of these random number generators can be posted to my discussion board.

Follow my research on the noncentral hypergeometric distributions.

Please don't mail me with your programming problems. Your mail will not be answered.

Links to related sites

0 comments: