- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- MS Excel
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP
- Physics
- Chemistry
- Biology
- Mathematics
- English
- Economics
- Psychology
- Social Studies
- Fashion Studies
- Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
C++ Program to Implement Park-Miller Random Number Generation Algorithm
Park-Miller Random Number Generation Algorithm is another method of generating random numbers.
A general formula of a random number generator (RNG) of this type is: X_{k+1} = g X(k) mod n
Where the modulus n is a prime number or a power of a prime number, the multiplier g is an element of high multiplicative order modulo n, and the seed X0 is coprime to n.
Algorithm
Begin Declare variables n, a, b, c and seed Read variables n, a, b, c and seed Uniform() Declare variable hi, lo, t hi=seed divided by b lo = seed - b * hi t = a * lo - c * hi if (t > 0) seed = t; else seed = t + n; return seed; Done For i =0 to n Call the function random Done End
Example Code
#include <iostream> using namespace std; const long n = 2145678965L; const long a = 763214L; const long b = 88844L; const long c = 7766L; i static long seed = 12345678L; double uniform() { long hi = seed / b; long lo = seed - b * hi; long t = a * lo - c * hi; if (t > 0) seed = t; else seed = t + n; return seed; } int main(int argc, char **argv) { double A[10]; for (int i = 0; i < 10; i++) A[i] = uniform(); cout << "Random numbers are:\n"; for (int i = 0; i < 10; i++) cout << A[i] << endl; }
Output
Random numbers are: 6.50293e+10 4.27187e+10 2.1539e+10 4.62058e+10 1.70792e+10 8.24569e+09 5.93381e+10 3.63839e+10 4.81931e+10 8.91007e+09
Advertisements
To Continue Learning Please Login
Login with Google