The Generation of Pseudo-Random Numbers on a Decimal Calculator
Journal of the ACM (JACM)
Serial Correlation in the Generation of Pseudo-Random Numbers
Journal of the ACM (JACM)
Notes on a New Pseudo-Random Number Generator
Journal of the ACM (JACM)
On a Weight Distribution Problem, with Application to the Design of Stochastic Generators
Journal of the ACM (JACM)
Mixed Congruential Random Number Generators for Decimal Machines
Journal of the ACM (JACM)
Mixed Congruential Random Number Generators for Binary Machines
Journal of the ACM (JACM)
Calculations with Pseudo-Random Numbers
Journal of the ACM (JACM)
Evaluation of a Pseudorandom Normal Number Generator
Journal of the ACM (JACM)
Some New Results in Pseudo-Random Number Generation
Journal of the ACM (JACM)
Testing a random number generator
Communications of the ACM
A 48-bit pseudo-random generator
Communications of the ACM
Journal of Computational and Applied Mathematics
Merrily we roll along: Some aspects of?
APL '83 Proceedings of the international conference on APL
Autocorrelation Peaks in Congruential Pseudorandom Number Generators
IEEE Transactions on Computers
IRE-AIEE-ACM '61 (Western) Papers presented at the May 9-11, 1961, western joint IRE-AIEE-ACM computer conference
Hi-index | 0.04 |
Although the multiplicative congruential method for generating pseudo-random numbers is widely used and has passed a number of tests of randomness [1, 2], attempts have been made to find an additive congruential method since it could be expected to be faster. Tests on a Fibonacci sequence [1] have shown it to be unsatisfactory. The sequence xi+1 = (2a + 1) xi + c (mod 235) (1) has been tested on the IBM 704. In appendix I it is shown that the sequence generates the full period of 235 numbers for a ≧ 2 and c odd. Similar results obtain for decimal machines. Since multiplication by a power of the base can be accomplished by shifting, which is comparable in speed to addition, this scheme requires essentially three additions. It takes 14 machine cycles on the IBM 704, compared to 28 for the multiplicative method, so that the saving is 168 &mgr;s/random number. The scheme has the further advantage that it does not destroy the multiplier-quotient register.Some tests have been made on the randomness of this sequence for a = 7 and c = 1, and a summary of the results is given in appendix II, where now the random numbers are considered to lie in the interval (0, 1). The serial correlation coefficient between one member of this sequence and the next is shown by Coveyou [3] to be approximately 0.8 per cent. By taking a = 9 this correlation coefficient can be reduced to approximately 0.2 per cent without increasing the time. Taking a = 21 would make this correlation very small but would require one more machine cycle on the IBM 704. Another way to reduce the correlation is to choose c such that the numerator in Coveyou's expression for the correlation coefficient is zero. This cannot be done exactly since it requires that c = (.5 ± √3/6)2P where P is the number of binary digits (excluding sign) in a machine word. However, a machine representation close to either of these numbers should be satisfactory. Some correlations with c = (.788+)235 and a = 7 were obtained and did not differ significantly from those given for c = 1 in the first section of appendix II.The author wishes to thank R. R. Coveyou for communicating his results in advance of publication and Elizabeth Wetherell for carrying out the calculations.