

A096550


Consecutive internal states of the IMSL pseudorandom number generator RNUN when started with ISEED=1.


11



1, 16807, 282475249, 1622650073, 984943658, 1144108930, 470211272, 101027544, 1457850878, 1458777923, 2007237709, 823564440, 1115438165, 1784484492, 74243042, 114807987, 1137522503, 1441282327, 16531729, 823378840, 143542612
(list;
graph;
refs;
listen;
history;
text;
internal format)



OFFSET

1,2


COMMENTS

This generator is also called "The minimal standard generator" or LCG16807 by L'Ecuyer. Generators of this form are ascribed to D. H. Lehmer, first described by Hutchinson and independently by Downham and Roberts (see link). It was first analysed by Lewis, Goodman and Miller (see link).


REFERENCES

D. W. Hutchinson, A new uniform pseudorandom number generator. Comm, ACM 9, No. 6, 432433, 1966.
D. E. Knuth, The Art of Computer Programming Third Edition. Vol. 2 Seminumerical Algorithms. Chapter 3.3.4 The Spectral Test, Page 108. AddisonWesley 1997.
Stephen K. Park and Keith. W. Miller: Random Number Generators: Good Ones are Hard to Find, Communications of the ACM, Volume 31, Number 10 (October, 1988), pp. 11921201


LINKS

Eric M. Schmidt and Alois P. Heinz, Table of n, a(n) for n = 1..10000 (first 1000 terms from Eric M. Schmidt)
D. Y. Downham and F. D. K. Roberts, Multiplicative congruential pseudorandom number generators. The Computer Journal, Volume 10, Issue 1, pp. 7477
Pierre L'Ecuyer, Software for Uniform Random Number Generation: Distinguishing the Good and the Bad. Proceedings of the 2001 Winter Simulation Conference, IEEE Press, Dec. 2001, 95105
P. A. W. Lewis, A. S. Goodman and J. M. Miller, A pseudorandom number generator for the System/360, IBM Systems Journal, Volume 8 Issue 2, 136146, 1969


FORMULA

a(1)=1, a(n) = 7^5 * a(n1) mod (2^311). The sequence is periodic with period length 2^312.


MAPLE

a:= proc(n) option remember; `if`(n<2, n,
irem(16807 *a(n1), 2147483647))
end:
seq(a(n), n=1..30); # Alois P. Heinz, Jun 10 2014


PROG

(C++)
#include <iostream>
#include <random>
void A096550(int max)
{
std::minstd_rand0 gen;
std::cout << "1 1\n";
for (int i = 2; i <= max; ++i)
std::cout << i << ' ' << gen() << '\n';
} // Eric M. Schmidt, Dec 18 2012


CROSSREFS

Cf. A096551A096561 (other pseudorandom number generators).
Sequence in context: A017357 A017477 A017609 * A184466 A214356 A237806
Adjacent sequences: A096547 A096548 A096549 * A096551 A096552 A096553


KEYWORD

nonn


AUTHOR

Hugo Pfoertner, Jul 18 2004


STATUS

approved



