The.Algorithm.Design.Manual.Springer-Verlag.1998
The.Algorithm.Design.Manual.Springer-Verlag.1998 The.Algorithm.Design.Manual.Springer-Verlag.1998
Random Number Generation The Stanford Graphbase (see Section ) contains a machine-independent random number generator based on the recurrence . With the proper initialization, this generator has a period of at least . Algorithm 488 [Bre74], Algorithm 599 [AKD83], and Algorithm 712 [Lev92] of the Collected Algorithms of the ACM are Fortran codes for generating random numbers according to several probability distributions, including normal, exponential, and Poisson distributions. They are available from Netlib (see Section ). Sim++ is a library of routines for implementing discrete event simulations, built by Robert Cubert and Paul Fishwick, of the University of Florida. It contains random number generators for a variety of different distributions, including uniform, exponential, and normal. Check out http://www.cis.ufl.edu/ fishwick/simpack/simpack.html if you need a random number generator to control a simulation. Fishwick's book [Fis95] describes model design using SimPack. LEDA (see Section ) provides a comprehensive random source in C++ for generating random bits, integers, and double precision reals. Sedgewick [Sed92] provides simple implementations of linear and additive congruential generators in C++. See Section for details. XTango (see Section ) is an algorithm animation system for UNIX and X-windows, which includes an animation illustrating the uniformity of random number generation. Notes: Knuth [Knu81] has a thorough and interesting discussion of random number generation, which I heartily recommend. He presents the theory behind several methods, including the middle square and shift-register methods we have not described here, as well as a detailed discussion of statistical tests for validating random number generators. Another good source is [PFTV86] - our recommended constants for the linear congruential generator are drawn from here. Comparisons of different random number generators in practice include [PM88]. Tables of random numbers appear in most mathematical handbooks, as relics from the days before there was ready access to computers. Most notable is [RC55], which provides one million random digits. The deep relationship between randomness, information, and compressibility is explored within the theory of Kolmogorov complexity, which measures the complexity of a string by its compressibility. Truly random strings are incompressible. The string of seemingly random digits of cannot be random under this definition, since the entire sequence is defined by any program implementing a series expansion for . Li and Vitáni [LV93] provide a thorough introduction to the theory of Kolmogorov complexity. file:///E|/BOOK/BOOK4/NODE142.HTM (4 of 5) [19/1/2003 1:30:27]
Random Number Generation Related Problems: Constrained and unconstrained optimization (see page ), generating permutations (see page ), generating subsets (see page ), generating partitions (see page ). Next: Factoring and Primality Testing Up: Numerical Problems Previous: Linear Programming Algorithms Mon Jun 2 23:33:50 EDT 1997 file:///E|/BOOK/BOOK4/NODE142.HTM (5 of 5) [19/1/2003 1:30:27]
- Page 351 and 352: Dictionaries Implementation-oriente
- Page 353 and 354: Priority Queues ● Besides access
- Page 355 and 356: Priority Queues Fibonacci heaps [FT
- Page 357 and 358: Suffix Trees and Arrays Figure: A t
- Page 359 and 360: Suffix Trees and Arrays [GBY91]. Se
- Page 361 and 362: Graph Data Structures algorithms).
- Page 363 and 364: Graph Data Structures including the
- Page 365 and 366: Set Data Structures Next: Kd-Trees
- Page 367 and 368: Set Data Structures parent pointers
- Page 369 and 370: Kd-Trees Next: Numerical Problems U
- Page 371 and 372: Kd-Trees about p. Say we are lookin
- Page 373 and 374: Numerical Problems Next: Solving Li
- Page 375 and 376: Numerical Problems Mon Jun 2 23:33:
- Page 377 and 378: Solving Linear Equations algorithm
- Page 379 and 380: Solving Linear Equations Matrix inv
- Page 381 and 382: Bandwidth Reduction images near eac
- Page 383 and 384: Matrix Multiplication Next: Determi
- Page 385 and 386: Matrix Multiplication The linear al
- Page 387 and 388: Determinants and Permanents Next: C
- Page 389 and 390: Determinants and Permanents exposit
- Page 391 and 392: Constrained and Unconstrained Optim
- Page 393 and 394: Constrained and Unconstrained Optim
- Page 395 and 396: Linear Programming variable assignm
- Page 397 and 398: Linear Programming The book [MW93]
- Page 399 and 400: Random Number Generation Next: Fact
- Page 401: Random Number Generation is largely
- Page 405 and 406: Factoring and Primality Testing The
- Page 407 and 408: Factoring and Primality Testing Alg
- Page 409 and 410: Arbitrary-Precision Arithmetic If y
- Page 411 and 412: Arbitrary-Precision Arithmetic PARI
- Page 413 and 414: Knapsack Problem Next: Discrete Fou
- Page 415 and 416: Knapsack Problem is a subset of S'
- Page 417 and 418: Discrete Fourier Transform Next: Co
- Page 419 and 420: Discrete Fourier Transform an algor
- Page 421 and 422: Combinatorial Problems Next: Sortin
- Page 423 and 424: Sorting Next: Searching Up: Combina
- Page 425 and 426: Sorting The simplest approach to ex
- Page 427 and 428: Sorting operations, implying an sor
- Page 429 and 430: Searching large performance improve
- Page 431 and 432: Searching Notes: Mehlhorn and Tsaka
- Page 433 and 434: Median and Selection followed by fi
- Page 435 and 436: Generating Permutations Next: Gener
- Page 437 and 438: Generating Permutations The rank/un
- Page 439 and 440: Generating Permutations generating
- Page 441 and 442: Generating Subsets look right when
- Page 443 and 444: Generating Subsets above for detail
- Page 445 and 446: Generating Partitions Although the
- Page 447 and 448: Generating Partitions Two related c
- Page 449 and 450: Generating Graphs generate: ● Do
- Page 451 and 452: Generating Graphs Combinatorica [Sk
Random Number Generation<br />
<strong>The</strong> Stanford Graphbase (see Section ) contains a machine-independent random number generator<br />
based on the recurrence . With the proper initialization, this generator has a<br />
period of at least .<br />
<strong>Algorithm</strong> 488 [Bre74], <strong>Algorithm</strong> 599 [AKD83], and <strong>Algorithm</strong> 712 [Lev92] of the Collected<br />
<strong>Algorithm</strong>s of the ACM are Fortran codes for generating random numbers according to several<br />
probability distributions, including normal, exponential, and Poisson distributions. <strong>The</strong>y are available<br />
from Netlib (see Section ).<br />
Sim++ is a library of routines for implementing discrete event simulations, built by Robert Cubert and<br />
Paul Fishwick, of the University of Florida. It contains random number generators for a variety of<br />
different distributions, including uniform, exponential, and normal. Check out http://www.cis.ufl.edu/<br />
fishwick/simpack/simpack.html if you need a random number generator to control a simulation.<br />
Fishwick's book [Fis95] describes model design using SimPack.<br />
LEDA (see Section ) provides a comprehensive random source in C++ for generating random bits,<br />
integers, and double precision reals. Sedgewick [Sed92] provides simple implementations of linear and<br />
additive congruential generators in C++. See Section for details.<br />
XTango (see Section ) is an algorithm animation system for UNIX and X-windows, which includes<br />
an animation illustrating the uniformity of random number generation.<br />
Notes: Knuth [Knu81] has a thorough and interesting discussion of random number generation, which I<br />
heartily recommend. He presents the theory behind several methods, including the middle square and<br />
shift-register methods we have not described here, as well as a detailed discussion of statistical tests for<br />
validating random number generators. Another good source is [PFTV86] - our recommended constants<br />
for the linear congruential generator are drawn from here. Comparisons of different random number<br />
generators in practice include [PM88].<br />
Tables of random numbers appear in most mathematical handbooks, as relics from the days before there<br />
was ready access to computers. Most notable is [RC55], which provides one million random digits.<br />
<strong>The</strong> deep relationship between randomness, information, and compressibility is explored within the<br />
theory of Kolmogorov complexity, which measures the complexity of a string by its compressibility.<br />
Truly random strings are incompressible. <strong>The</strong> string of seemingly random digits of cannot be random<br />
under this definition, since the entire sequence is defined by any program implementing a series<br />
expansion for . Li and Vitáni [LV93] provide a thorough introduction to the theory of Kolmogorov<br />
complexity.<br />
file:///E|/BOOK/BOOK4/NODE142.HTM (4 of 5) [19/1/2003 1:30:27]