Method and apparatus for generating random numbers with improved statistical properties
First Claim
1. A computer-implemented method of generating random numbers using a plurality of random number generators, the method comprising:
- (1) generating a plurality of independent streams of events;
(2) selecting an event from the independent streams based on an arrival time of the event in relation to arrival times of other events in the plurality of independent streams of events; and
(3) using the selected event to generate a random number.
6 Assignments
0 Petitions
Accused Products
Abstract
A method and an apparatus are provided for combining a plurality of random number generators into a combined random number generator. The outputs of the plurality of generators are interleaved into a combined stream of random numbers selected from each of the plurality of random-number generators. A value of x is calculated by each of the random number generators. Each of the values of x is mapped to a respective arrival time t for each of the random number generators. One of the random number generators having an earliest respective arrival time t is determined. A random number based on the arrival time t is generated.
-
Citations
56 Claims
-
1. A computer-implemented method of generating random numbers using a plurality of random number generators, the method comprising:
-
(1) generating a plurality of independent streams of events;
(2) selecting an event from the independent streams based on an arrival time of the event in relation to arrival times of other events in the plurality of independent streams of events; and
(3) using the selected event to generate a random number. - View Dependent Claims (2, 3)
(2a) determining an earliest arrival time from among arrival times associated with each of the plurality of independent streams; and
(2b) selecting the event from a stream associated with the earliest arrival time.
-
-
3. The computer-implemented method of claim 2, further comprising:
-
(4) generating another event from one of the independent streams having the selected event;
(5) repeating acts 2 through 4 to produce successive random numbers.
-
-
4. A computer-implemented method of generating random numbers using a plurality of random number generators, the method comprising:
-
(1) using each of the random number generators to calculate a value of x for each of the random number generators;
(2) mapping each of the values of x to a respective time t for each of the random number generators;
(3) determining which one of the random number generators has the time t with a value being less than or equal to the respective time t of each of other ones of the random number generators; and
(4) generating, as output, a random number based on the lowest value oft determined in act (3). - View Dependent Claims (5, 6, 7, 8, 9, 10, 11, 12)
(5) using the one random number generator determined in act (3) to calculate a new value of x;
(6) mapping the new value of x to a new value of t; and
(7) repeating acts 3 through 4 to generate another random number.
-
-
6. The computer-implemented method of claim 4, wherein act (2) comprises:
-
(a) converting the value of x to a probability number having a value between 0 and 1;
(b) determining a time increment Δ
ti, based on the probability number; and
(c) determining the time t based on the time increment Δ
ti, and a previous arrival time.
-
-
7. The computer-implemented method of claim 6, wherein act (a) comprises:
-
(a1) adding 1 to the value of x to produce a sum; and
(a2) dividing the sum by 1 plus a maximum value c which is generated by a corresponding one of the random number generators to produce the probability number.
-
-
8. The computer-implemented method of claim 6, wherein act (b) further comprises:
-
(b1) determining the time increment Δ
tji based on;
where Pji is the probability number and λ
i is the average arrival rate for a corresponding one of the random number generators.
-
-
9. The computer-implemented method of claim 7, wherein act (b) further comprises:
-
(b1) determining the time increment Δ
tji based on;
where Pji is the probability number and λ
i is the average arrival rate for a corresponding one of the random number generators.
-
-
10. The computer-implemented method of claim 6, wherein act (b) further comprises;
-
(b1) determining the time increment Δ
tji based on;
Δ
tji=−
ln(Pji), where Pji is the probability number.
-
-
11. The computer-implemented method of claim 4, wherein act (4) comprises:
-
determining Pi as the random number, wherein;
Pi=e−
n(ti−
ti−
1), where Pi is the ith random number generated, n is a number of random number generators and ti−
ti−
1 is a difference between a value of the time t at an ith arrival time and a value of the time t at an (ith−
1) arrival time.
-
-
12. The computer-implemented method of claim 4, wherein act (4) comprises:
-
determining Pi is the ith random number, wherein;
where Pi is the ith random number generated, λ
j is an average arrival rate for the jth random number generator, where j will vary from 1 to n, n is a number of random number generators, and ti−
ti−
1 is a difference between a value of the time t at an ith arrival time and a value of the time t at an (ith−
1) arrival time.
-
-
13. An apparatus for generating random numbers comprising:
-
a plurality of random number generators;
a plurality of converters, each of the converters being configured to map a respective random number value of x, generated by each of the random number generators to a time t; and
a selector to determine which one of the random number generators has a lowest value for the time t, wherein;
the selector is arranged to generate a random number based on the lowest value for the time t. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
an xconverter to convert the value of x to a probability number having a value between 0 and 1.
-
-
15. The apparatus of claim 14, wherein the xconverter is configured to add 1 to the value of x to produce a sum and the sum is divided by one plus a maximum value c to produce the probability number, wherein c is a maximum value generated by a corresponding one of the random number generators.
-
16. The apparatus of claim 14, wherein each of the converters further comprises an inter-arrival time calculator configured to receive the probability number from the Xconverter and determine a time increment Δ
- tji based on;
where Pji is the probability number and λ
i is the average arrival rate for a corresponding one of the random number generators.
- tji based on;
-
17. The apparatus of claim 14, wherein each of the converters further comprises an inter-arrival time calculator configured to receive the probability number from the Xconverter and determine a time increment Δ
- tji based on;
Δ
tji=−
ln(Pji), where Pji is the probability number.
- tji based on;
-
18. The apparatus of claim 16, wherein each of the converters further comprises an arrival time calculator that is configured to receive the time increment from the inter-arrival time calculator and determine a next arrival time based on the time increment.
-
19. The apparatus of claim 13, wherein the selector comprises a comparator to compare the arrival times associated with each of the random number generators and to select the arrival time having the lowest value.
-
20. The apparatus of claim 19, wherein the selector further comprises a producer to receive the arrival time having the lowest value and to generate a random number Pi, wherein:
-
where Pi is the ith random number generated, λ
j is an average arrival rate for the jth random number generator, where j will vary from 1 to n, n being a number of random number generators, and ti−
ti−
1 is a difference between a value of the arrival time at an ith arrival time and a value of the arrival time at an (ith−
1) arrival time.
-
-
21. A machine-readable medium having instructions recorded thereon, the instructions comprising:
-
(1) generating a plurality of independent streams of events;
(2) selecting an event from the independent streams based on an arrival time of the event in relation to arrival times of other events in the plurality of independent streams of events; and
(3) using the selected event to generate a random number. - View Dependent Claims (22, 23)
(2a) determining an earliest arrival time from among arrival times associated with each of the plurality of independent streams; and
(2b) selecting the event from a stream associated with the earliest arrival time.
-
-
23. The machine-readable medium of claim 22, further comprising:
-
(4) generating another event on one of the independent streams having the selected event;
(5) repeating acts 2 through 4 until a desired quantity of random numbers are produced.
-
-
24. A machine-readable medium having instructions recorded thereon, the instructions comprising:
-
(1) using each of a plurality of random number generators to calculate respective random number values of x;
(2) mapping each of the respective values of x to a respective time t for each of the random number generators;
(3) determining which one of the random number generators has the time t with a value being less than or equal to the respective time t of each of other ones of the random number generators; and
(4) generating, as output, a random number based on the lowest value oft determined in act (3). - View Dependent Claims (25, 26, 27, 28, 29, 30, 31, 32)
(5) using the one random number generator determined in act (3) to calculate a new value of x;
(6) mapping the new value of x to a new value of t; and
(7) repeating acts 3 through 4 to generate another random number.
-
-
26. The machine-readable medium of claim 24, wherein act (2) comprises:
-
(a) converting the value of x to a probability number having a value between 0 and 1;
(b) determining a time increment Δ
tji a based on the probability number; and
(c) determining the time t based on the time increment Δ
tji and a previous arrival time.
-
-
27. The machine-readable medium of claim 26, wherein act (a) comprises:
-
(a1) adding 1 to the value of x to produce a sum; and
(a2) dividing the sum by 1 plus a maximum value c which is generated by a corresponding one of the random number generators to produce the probability number.
-
-
28. The machine-readable medium of claim 26, wherein act (b) further comprises:
-
(b1) determining the time increment Δ
tji based on;
where Pji is the probability number and λ
i is the average arrival rate for a corresponding one of the random number generators.
-
-
29. The machine-readable medium of claim 27, wherein act (b) further comprises:
-
(b1) determining the time increment Δ
tji based on;
where Pji is the probability number and λ
i is the average arrival rate for a corresponding one of the random number generators.
-
-
30. The machine-readable medium of claim 26, wherein act (b) further comprises:
-
(b1) determining the time increment Δ
tji based on;
Δ
tji=−
ln(Pji), where Pji is the probability number.
-
-
31. The machine-readable medium of claim 24, wherein act (4) comprises:
-
determining Pi as the random number, wherein;
Pi=e−
n(ti−
ti−
1), where Pi is the ith random number generated, n is a number of random number generators and ti−
ti−
1 is a difference between a value of the time t at an ith arrival time and a value of the time t at an (ith−
1) arrival time.
-
-
32. The machine-readable medium of claim 24, wherein act (4) comprises:
-
determining Pi is the ith random number, wherein;
where Pi is the ith random number generated, λ
j is an average arrival rate for the jth random number generator, where j will vary from 1 to n, n is a number of random number generators, and ti−
ti−
1 is a difference between a value of the time t at an ith arrival time and a value of the time t at an (ith−
1) arrival time.
-
-
33. A computer-implemented method of generating random numbers using a plurality of random number generators, the method comprising:
-
(1) calculating a random number value of x from each of a plurality of random number generators;
(2) converting each of the values of x to a respective probability number according to a formula;
where Pji is the respective probability number and c, is a maximum number which can be generated by a respective one of the random number generators;
(3) determining a respective time increment Δ
tji for each of the respective random number generators based on the respective probability number Pji for each of the random number generators according to a formula;
where λ
i is the average arrival rate for an ith one of the random number generators;
(4) determining a respective arrival time t for each of the random number generators by adding a current time to the respective time increment Δ
tji to produce the respective arrival time t;
(5) determining which one of the random number generators has a smallest value of the arrival time t;
(6) generating a random number Pi according to a formula;
where λ
j is an average arrival rate for the jth random number generator, where j will vary from 1 to n, n is a number of random number generators, and t1−
ti−
1 is a difference between a value of the time t at an ith arrival time and a value of the time t at an (ith−
1) arrival time, where ti has the smallest value of the arrival time determined by act 5;
(7) determining a new value of x for the one of the random number generators;
(8) converting the new value of x to the respective probability number according to the formula;
where Pji is the respective probability number and ci is maximum number which can be generated by the respective one of the random number generators;
(9) determining the respective time increment Δ
tji for the respective random number generator based on the respective probability number Pji for the one of the random number generators according to the formula;
where λ
i is the average arrival rate for the respective random number generator;
(10) determining a respective arrival time t for the respective random number generator by adding the current time to the respective time increment Δ
tji to produce the respective arrival time t;
(11) repeating acts 5 through 10 to produce a next random number Pji. - View Dependent Claims (34)
-
-
35. A machine-readable medium having instructions recorded thereon, the instructions comprising:
-
(1) calculating a random number value of x from each of a plurality of random number generators;
(2) converting each of the values of x to a respective probability number according to a formula;
where Pji is the respective probability number and c, is a maximum number which can be generated by a respective one of the random number generators;
(3) determining a respective time increment Δ
tji for each of the respective random number generators based on the respective probability number Pji for each of the random number generators according to a formula;
where λ
i is the average arrival rate for an ith one of the random number generators;
(4) determining a respective arrival time t for each of the random number generators by adding a current time to the respective time increment Δ
tji to produce the respective arrival time t;
(5) determining which one of the random number generators has a smallest value of the arrival time t;
(6) generating a random number Pi according to a formula;
where λ
j is an average arrival rate for the jth random number generator, where j will vary from 1 to n, n is a number of random number generators, and t1−
ti−
1 is a difference between a value of the time t at an ith arrival time and a value of the time t at an (ith−
1) arrival time, where ti has the smallest value of the arrival time determined by act 5;
(7) determining a new value of x for the one of the random number generators;
(8) converting the new value of x to the respective probability number according to the formula;
where Pji is the respective probability number and ci is maximum number which can be generated by the respective one of the random number generators;
(9) determining the respective time increment Δ
tji for the respective random number generator based on the respective probability number Pn for the one of the random number generators according to the formula;
where λ
i is the average arrival rate for the respective random number generator;
(10) determining a respective arrival time t for the respective random number generator by adding the current time to the respective time increment Δ
tji to produce the respective arrival time t;
(11) repeating acts 5 through 10 to produce a next random number Pi+1. - View Dependent Claims (36)
-
-
37. A computer-implemented method of generating random numbers using a plurality of independent event streams, the method comprising:
-
(1) selecting an event from the plurality of independent event streams based on an arrival time of a current event of each independent event stream; and
(2) using the selected event to generate a random number. - View Dependent Claims (38, 39)
(1a) determining an earliest arrival time from among arrival times associated with each of the current events corresponding to each of the plurality of independent event streams; and
(1b) selecting the event from a stream associated with the earliest arrival time.
-
-
39. The computer-implemented method of claim 38, further comprising:
-
(3) generating another event by the independent stream having the selected event;
(4) repeating acts 1 through 3 to produce successive random numbers.
-
-
40. A machine-readable medium having instructions recorded thereon, the instructions comprising:
-
(1) selecting an event from a plurality of independent event streams based on an arrival time of a current event of each independent event stream; and
(2) using the selected event to generate a random number. - View Dependent Claims (41, 42)
(1a) determining an earliest arrival time from among arrival times associated with each of the current events corresponding to each of the plurality of independent event streams; and
(1b) selecting an event from a stream associated with the earliest arrival time.
-
-
42. The machine-readable medium of claim 41, further comprising:
-
(3) generating another event by the independent stream having the selected event;
(4) repeating acts 1 through 3 until a desired quantity of random numbers are produced.
-
-
43. A computer-implemented method of generating random numbers using a plurality of random number generators, the method comprising:
-
(1) calculating a value by each of the plurality of random number generators;
(2) mapping each of the calculated values to a corresponding time value;
(3) determining a lowest time value from the set of time values mapped from each calculated value; and
(4) generating a random number for output, based on the lowest time value. - View Dependent Claims (44, 45, 46, 47)
(5) calculating a new value using a random number generator corresponding to the lowest time value;
(6) mapping the new value to a corresponding time value; and
(7) repeating steps 3 through 4 to generate another random number.
-
-
45. The computer-implemented method of claim 43, wherein step (2) comprises:
-
(a) converting each calculated value to a probability number;
(b) for each probability number, determining a corresponding time increment based on the probability number; and
(c) determining each corresponding time value based on the time increment and a previous arrival time.
-
-
46. The computer-implemented method of claim 43, wherein act (4) comprises:
-
determining Pi as the random number, wherein;
Pi=e−
n(ti−
ti−
1), where Pi is the ith random number generated, n is a number of random number generators and ti−
ti−
1 is a difference between a value of the time t at an ith arrival time and a value of the time t at an (ith−
1) arrival time.
-
-
47. The computer-implemented method of claim 43, wherein act (4) comprises:
-
determining Pi as the random number, wherein;
where Pi is the ith random number generated, λ
j is an average arrival rate for the jth random number generator, where j will vary from 1 to n, n is a number of random number generators, and ti−
ti−
1 is a difference between a value of the time t at an ith arrival time and a value of the time t at an ith−
1) arrival time.
-
-
48. An apparatus for generating random numbers comprising:
-
a plurality of random number generators;
a plurality of converters, each of the converters being configured to map a respective random number value, generated by each of the random number generators, to a time value; and
a selector to determine which one of the random number generators has a lowest corresponding time value, wherein;
the selector is arranged to generate a random number based on the lowest time value.
-
-
49. A machine-readable medium having instructions recorded thereon, the instructions comprising:
-
(1) calculating a value by each of the plurality of random number generators;
(2) mapping each of the calculated values to a corresponding time value;
(3) determining a lowest time value from the set of time values mapped from each calculated value; and
(4) generating a random number for output, based on the lowest time value. - View Dependent Claims (50, 51, 52, 53, 54, 55, 56)
(5) calculating a new value using a random number generator corresponding to the lowest time value;
(6) mapping the new value to a corresponding time value; and
(7) repeating steps 3 through 4 to generate another random number.
-
-
51. The machine-readable medium of claim 49, wherein step (2) comprises:
-
(a) converting each calculated value to a probability number having a value between 0 and 1;
(b) determining a time increment Δ
tji based on the probability number; and
(c) determining each time value based on the corresponding time increment Δ
tji and a previous arrival time.
-
-
52. The machine-readable medium of claim 51, wherein act (a) comprises:
-
(a1) adding 1 to each calculated value to produce a corresponding sum value; and
(a2) dividing each sum value by 1 plus a maximum value which is generated by a corresponding one of the random number generators to produce the probability number.
-
-
53. The machine-readable medium of claim 51, wherein act (b) further comprises:
-
(b1) determining the time increment Δ
tji based on;
where Pji is the probability number and λ
i is the average arrival rate for a corresponding one of the random number generators.
-
-
54. The machine-readable medium of claim 51, wherein act (b) further comprises:
-
(b1) determining the time increment Δ
tji based on;
Δ
tji=−
ln(Pji), where is the probability number.
-
-
55. The machine-readable medium of claim 49, wherein step (4) comprises:
-
determining Pi as the output random number, wherein;
Pi=e−
n(ti−
ti−
1), where Pi is the ith random number generated, n is a number of random number generators and ti−
ti−
1 is a difference between a time value at an ith arrival time and a time value at an (ith−
1) arrival time.
-
-
56. The machine-readable medium of claim 49, wherein step (4) comprises:
-
determining Pi as the output random number, wherein;
where Pi is the ith random number generated, λ
j is an average arrival rate for the jth random number generator, where j will vary from 1 to n, n is a number of random number generators, and ti−
ti−
1 is a difference between a time value at an ith arrival time and a time value at an (ith−
1) arrival time.
-
Specification