login
A096550
Consecutive internal states of the IMSL pseudo-random number generator RNUN when started with ISEED=1.
14
1, 16807, 282475249, 1622650073, 984943658, 1144108930, 470211272, 101027544, 1457850878, 1458777923, 2007237709, 823564440, 1115438165, 1784484492, 74243042, 114807987, 1137522503, 1441282327, 16531729, 823378840, 143542612, 896544303, 1474833169, 1264817709, 1998097157
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 analyzed by Lewis, Goodman and Miller (see link).
REFERENCES
D. W. Hutchinson, A new uniform pseudo-random number generator. Comm, ACM 9, No. 6, 432-433, 1966.
D. E. Knuth, The Art of Computer Programming Third Edition. Vol. 2 Seminumerical Algorithms. Chapter 3.3.4 The Spectral Test, Page 108. Addison-Wesley 1997.
LINKS
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 pseudo-random number generators. The Computer Journal, Volume 10, Issue 1, pp. 74-77
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, 95-105
P. A. W. Lewis, A. S. Goodman and J. M. Miller, A pseudo-random number generator for the System/360, IBM Systems Journal, Volume 8 Issue 2, 136-146, 1969
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. 1192-1201.
FORMULA
a(1)=1, a(n) = 7^5 * a(n-1) mod (2^31-1). The sequence is periodic with period length 2^31-2.
MAPLE
a:= proc(n) option remember; `if`(n<2, n,
irem(16807 *a(n-1), 2147483647))
end:
seq(a(n), n=1..30); # Alois P. Heinz, Jun 10 2014
MATHEMATICA
NestList[Mod[#*16807, 2^31 - 1] &, 1, 50] (* Paolo Xausa, Aug 29 2024 *)
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
(PARI) A096550(n)=lift(Mod(16807, 1<<31-1)^(n-1)) \\ M. F. Hasler, May 14 2015
CROSSREFS
Cf. A096551-A096561 (other pseudo-random number generators); A061364.
Sequence in context: A017357 A017477 A017609 * A184466 A214356 A237806
KEYWORD
nonn,easy
AUTHOR
Hugo Pfoertner, Jul 18 2004
STATUS
approved