Two phase random number generator
First Claim
1. An apparatus for generating random numbers comprised offirst input register, said first input register specifying a random number seed,a second input register, said second input register specifying a random number mask,means to automatically control the number of random numbers to computer,first means for generating a series of intermediate random numbers coupled to said control means and coupled to said input means, andsecond means for generating final random numbers, coupled to said first generating means, each said final random number corresponding to and depending on a different intermediate random number.
0 Assignments
0 Petitions
Accused Products
Abstract
A random number generator is shown with a two phase operation, the two phases operating to increase the measured randomness of the numbers generated at very little additional cost. The first phase of operation uses conventional techniques to generate an intermediate random number. This intermediate random number is then used by the second phase to generate two potential final random numbers. One of these is picked to be the resultant random number based on whether a specified bit of the intermediate random number is set.
-
Citations
10 Claims
-
1. An apparatus for generating random numbers comprised of
first input register, said first input register specifying a random number seed, a second input register, said second input register specifying a random number mask, means to automatically control the number of random numbers to computer, first means for generating a series of intermediate random numbers coupled to said control means and coupled to said input means, and second means for generating final random numbers, coupled to said first generating means, each said final random number corresponding to and depending on a different intermediate random number.
-
4. An apparatus for generating a series of random numbers comprised of:
-
first means for generating a series of intermediate random numbers, an intermediate register receiving each said intermediate random number from said first generating means, second means for generating a series of final random numbers, coupled to said first generating means, each final random number corresponding to an intermediate random number stored in said intermediate register, and the generation of each final random number utilizing the corresponding intermediate random number and a history of preceding intermediate random numbers. - View Dependent Claims (5, 6, 7)
-
-
8. A method for generating a series of random numbers comprising the steps of:
- generating a series of intermediate random numbers
storing said intermediate random numbers in an intermediate register and generating a series of final random numbers, each said final random number corresponding to one of said intermediate random numbers stored in said intermediate register, and the generation of each said final random number depending on the corresponding intermediate random number stored in said intermediate register and a history of the intermediate random numbers preceding said corresponding intermediate random number in said series of intermediate random numbers.
- generating a series of intermediate random numbers
-
9. A method for generating a series of random numbers comprising the steps of:
-
generating a series of intermediate random numbers, and generating a series of final random numbers, each said final random number corresponding to one of said intermediate random numbers, and the generation of each said final random number depending on the corresponding intermediate random number and a history of the intermediate random numbers preceding said corresponding intermediate random number in said series of intermediate random numbers, the generating of each said final random numbers including the steps of; maintaining a first and a second pointer register, each said pointer register addressing locations within a circular array, and each said pointer register being incremented for each final random number, incrementing said first pointer register to traverse said circular array to the left to an extent determined by said corresponding intermediate random number, incrementing said second pointer register to traverse said circular array to the right to an extent determined by said corresponding intermediate random number, normalizing both said pointer registers to address a location in said circular array, determining a first potential random number by indexing said circular array by one of said pointer registers, determining a second potential random number by indexing said circular array by the other of said pointer registers, and selecting one of said potential random numbers to be said final random number if a specified bit in said intermediate random number is set, and to be the other said final random number if said bit is clear.
-
-
10. A method for generating a series of random numbers comprising the steps of:
-
generating a series of intermediate random numbers, and generating a series of final random numbers, each said final random number corresponding to one of said intermediate random numbers, and the generation of each said final random number depending on the corresponding intermediate random number and a history of the intermediate random numbers preceding said corresponding intermediate random number in said series of intermediate random numbers, the generating of each said final random numbers including the steps of; maintaining a first and a second pointer register addressing locations within a circular array, each said pointer register being incremented in the same direction for each said final random number, incrementing said first pointer register by an amount determined by said corresponding intermediate random number, incrementing said second pointer register by the sum of a specified amount and an amount determined by said corresponding intermediate random number, normalizing both said pointer registers to address a location in said circular array, determining a first potential random number by indexing said circular array by one of said pointer registers, determining a second potential random number by indexing said circular array by the other of said pointer registers, and selecting one of said potential random numbers to be said final random number if a specified bit in said intermediate random number is set, and to be the other said final random number if said bit is clear.
-
Specification