TECHNICAL FIELD
[0002] The present patent relates to the field of computer technologies, and in particular,
to a random number generation and retrieval method and device.
BACKGROUND
[0003] Requirements become increasingly high for random number generation as random numbers
are widely applied in the computer field. Currently, there are two commonly-used random
number generation methods. One is a software method in which system time is used as
a seed for random number generation, and then a random number is generated based on
a system function. The other is a hardware method in which a hardware device generating
a random number is designed to generate a random number based on a random signal.
[0004] However, a system default random number generation method used by the software has
the following disadvantage: Random numbers generated at the same time point (the same
second, or the same millisecond) have a high repetition rate, resulting in imbalanced
distribution of random numbers, that is, pseudorandom numbers are generated. In a
computer application system, time is used as a seed for random number generation,
therefore, due to the same time seeds, random numbers generated within a relatively
short time such as duration including same milliseconds or seconds have a high repetition
rate, resulting in imbalanced distribution of random numbers.
[0006] FR 2 829 643 describes a method for generating random numbers.
SUMMARY
[0007] The purpose of the present patent is to resolve one of the previous technical problems
to a certain extent.
[0008] Thus, the first purpose of the present patent is to provide a random number generation
method. The method includes the following: generating a random number array that includes
N storage units storing random numbers; then, performing random shuffling on the storage
units in the random number array; and when receiving a random number retrieval instruction,
read a random number from a corresponding storage unit in the random number array.
In the implementations of the present patent, a plurality of random numbers obtained
in a relatively short unit time have a low repetition rate to achieve balanced distribution.
Therefore, the random number generation method in the present patent can achieve relatively
high randomness.
[0009] The second purpose of the present patent is to provide a random number generation
device.
[0010] The third purpose of the present patent is to provide a random number retrieval method.
[0011] The fourth purpose of the present patent is to provide a random number retrieval
device.
[0012] To achieve the previous purposes, a first aspect of the implementations of the present
patent provides a random number generation method, including the following steps:
generating a random number array, where the random number array includes
N storage units, each of the storage units stores a random number, and
N is a positive integer; performing random shuffling on the storage units in the random
number array; and when receiving a random number retrieval instruction, read, from
a corresponding storage unit in the random number array based on the random number
retrieval instruction, a random number stored in the storage unit.
[0013] The random number generation method in the implementations of the present patent
includes the following: first generating the random number array that includes the
N storage units storing the random numbers; then, performing random shuffling on the
storage units in the random number array; and receiving the random number retrieval
instruction, and reading, from the corresponding storage unit in the random number
array, the random number stored in the storage unit. Because random shuffling is performed
on the storage units in the random number array, a plurality of random numbers obtained
in a relatively short unit time have a low repetition rate, to achieve balanced distribution.
Therefore, the random number generation method in the present patent can achieve relatively
high randomness.
[0014] In an implementation of the present patent, the N storage units store different random
numbers.
[0015] In an implementation of the present patent, in the random number generation method,
each of the storage units has an identifier value, and the performing random shuffling
on the storage units in the random number array includes the following: generating
a random value based on a random function, and generating an identifier value of a
to-be-exchanged storage unit based on the random value; and exchanging a random number
in the to-be-exchanged storage unit with a random number in a target storage unit
based on the identifier value and a predetermined exchange rule.
[0016] In an implementation of the present patent, the generating a random value based on
a random function includes the following: when
i is greater than 1 and less than
N, generating the
ith random value based on a current time and the
(i-1)th random value, where
i is the number of exchange times; or when
i is equal to 1, generating the
ith random value based on a current time.
[0017] In an implementation of the present patent, the predetermined exchange rule is as
follows: When the
ith exchange is performed, a random number in a storage unit corresponding to the
ith random value is exchanged with a random number in the
(N+
1-i)th storage unit.
[0018] In an implementation of the present patent, the reading, from a corresponding storage
unit in the random number array based on the random number retrieval instruction,
a random number stored in the storage unit includes the following: obtaining an identifier
value of a currently read storage unit based on the random number retrieval instruction;
and reading, based on the identifier value of the currently read storage unit, a random
number stored in a next storage unit.
[0019] To achieve the previous purposes, a second aspect of the implementations of the present
patent provides a random number generation device, including: a generation module,
configured to generate a random number array, where the random number array includes
N storage units, each of the storage units stores a random number, and
N is a positive integer; a random shuffling module, configured to perform random shuffling
on the storage units in the random number array; and a reading module, configured
to receive a random number retrieval instruction, and read, from a corresponding storage
unit in the random number array based on the random number retrieval instruction,
a random number stored in the storage unit.
[0020] In the random number generation device in the implementations of the present patent,
first, the generation module generates the random number array that includes the
N storage units storing the random numbers; then, the random shuffling module performs
random shuffling on the storage units in the random number array; and the reading
module can receive the random number retrieval instruction, and read, from the corresponding
storage unit in the random number array, the random number stored in the storage unit.
Because the random shuffling module performs random shuffling on the storage units
in the random number array, a plurality of random numbers obtained in a relatively
short unit time have a low repetition rate to achieve balanced distribution. Therefore,
the random number generation device in the present patent can achieve relatively high
randomness.
[0021] In an implementation of the present patent, the N storage units store different random
numbers.
[0022] In an implementation of the present patent, in the random number generation device,
each of the storage units has an identifier value, and the random shuffling module
includes the following: an identifier value generation submodule, configured to generate
a random value based on a random function, and generate an identifier value of a to-be-exchanged
storage unit based on the random value; and an exchange submodule, configured to exchange
a random number in the to-be-exchanged storage unit with a random number in a target
storage unit based on the identifier value and a predetermined exchange rule.
[0023] In an implementation of the present patent, in the random number generation device,
when
i is greater than 1 and less than
N, the identifier value generation submodule generates the ith random value based on
a current time and the
(i-1)th random value, where
i is the number of exchange times; or when
i is equal to 1, the identifier value generation submodule generates the ith random
value based on a current time.
[0024] In an implementation of the present patent, the predetermined exchange rule is as
follows: When the ith exchange is performed, a random number in a storage unit corresponding
to the ith random value is exchanged with a random number in the
(N+
1-i)th storage unit.
[0025] In an implementation of the present patent, the reading module includes the following:
a retrieval submodule, configured to obtain an identifier value of a currently read
storage unit based on the random number retrieval instruction; and a reading submodule,
configured to read, based on the identifier value of the currently read storage unit,
a random number stored in a next storage unit.
[0026] To achieve the previous purposes, a third aspect of the implementations of the present
patent provides a random number retrieval method, including the following steps: receiving
a random number retrieval instruction, and obtaining a random number array, where
the random number array includes
N storage units, each of the storage units stores a random number, and locations of
the
N storage units in the random number array are determined through random shuffling,
where
N is a positive integer; and obtaining, from a corresponding storage unit in the random
number array based on the random number retrieval instruction, a random number stored
in the storage unit.
[0027] The random number retrieval method in the implementations of the present patent includes
the following: first, receiving the random number retrieval instruction; then obtaining
the random number array, and determining the locations of the N storage units in the
random number array through random shuffling; and reading, from the corresponding
storage unit in the random number array based on the random number retrieval instruction,
the random number stored in the storage unit. Because random shuffling is performed
on the storage units in the random number array, a plurality of random numbers obtained
in a relatively short unit time have a low repetition rate to achieve balanced distribution.
Therefore, the random number retrieval method in the present patent can achieve relatively
high randomness.
[0028] In an implementation of the present patent, the
N storage units store different random numbers.
[0029] In an implementation of the present patent, in the random number retrieval method,
each of the storage units has an identifier value, and random shuffling is performed
on the locations of the
N storage units in the random number array by using the following steps: generating
a random value based on a random function, and generating an identifier value of a
to-be-exchanged storage unit based on the random value; and exchanging a random number
in the to-be-exchanged storage unit with a random number in a target storage unit
based on the identifier value and a predetermined exchange rule.
[0030] In an implementation of the present patent, the obtaining, from a corresponding storage
unit in the random number array based on the random number retrieval instruction,
a random number stored in the storage unit includes the following: obtaining an identifier
value of a currently read storage unit based on the random number retrieval instruction;
and reading, based on the identifier value of the currently read storage unit, a random
number stored in a next storage unit.
[0031] To achieve the previous purposes, a fourth aspect of the implementations of the present
patent provides a random number retrieval device, including: a receiving module, configured
to receive a random number retrieval instruction; a random number array retrieval
module, configured to obtain a random number array, where the random number array
includes
N storage units, each of the storage units stores a random number, and locations of
the
N storage units in the random number array are determined through random shuffling,
where
N is a positive integer; and a random number retrieval module, configured to obtain,
from a corresponding storage unit in the random number array based on the random number
retrieval instruction, a random number stored in the storage unit.
[0032] In the random number retrieval device in the implementations of the present patent,
first, the receiving module receives the random number retrieval instruction; then,
the random number array retrieval module obtains the random number array, and the
locations of the
N storage units in the random number array are determined through random shuffling;
and the random number retrieval module reads, from the corresponding storage unit
in the random number array based on the received random number retrieval instruction,
the random number stored in the storage unit. Because random shuffling is performed
on the storage units in the random number array, a plurality of random numbers obtained
in a relatively short unit time have a low repetition rate, to achieve balanced distribution.
Therefore, the random number retrieval device in the present patent can achieve relatively
high randomness.
[0033] In an implementation of the present patent, the
N storage units store different random numbers.
[0034] In an implementation of the present patent, the random number retrieval module includes:
a first retrieval submodule, configured to obtain an identifier value of a currently
read storage unit based on the random number retrieval instruction; and a second retrieval
submodule, configured to obtain, based on the identifier value of the currently read
storage unit, a random number stored in a next storage unit.
[0035] Additional aspects and advantages of the present patent are partially provided in
the following description. Some of them become apparent from the following description,
or can be understood through the practice of the present patent.
BRIEF DESCRIPTION OF DRAWINGS
[0036] The previous and/or additional aspects and advantages of the present patent will
become apparent and easy to understand in the description of the implementations with
reference to the accompanying drawings:
FIG. 1 is a flowchart illustrating a random number generation method, according to
an implementation of the present patent;
FIG. 2 is a flowchart illustrating a random number retrieval process, according to
an implementation of the present patent;
FIG. 3 is a flowchart illustrating a process in which random shuffling is performed
on storage units in a random number array, according to an implementation of the present
patent;
FIG. 4 is a schematic structural diagram illustrating a random number generation device,
according to an implementation of the present patent;
FIG. 5 is a schematic structural diagram illustrating a random number generation device,
according to another implementation of the present patent;
FIG. 6 is a schematic structural diagram illustrating a random number generation device,
according to still another implementation of the present patent;
FIG. 7 is a flowchart illustrating a random number retrieval method, according to
an implementation of the present patent;
FIG. 8 is a schematic structural diagram illustrating a random number retrieval device,
according to an implementation of the present patent; and
FIG. 9 is a schematic structural diagram illustrating a random number retrieval device,
according to another implementation of the present patent.
DESCRIPTION OF IMPLEMENTATIONS
[0037] The following describes in detail the implementations of the present patent. Examples
of the implementations are shown in the accompanying drawings. The same or similar
reference numerals indicate the same or similar elements, or elements having the same
or similar functions. The implementations described below with reference to the accompanying
drawings are examples, and are intended to explain the present patent instead of limiting
the present patent.
[0038] In the present patent, random shuffling is performed on storage units in a random
number array, so that random numbers in the random number array are randomly shuffled.
It resolves a problem of imbalanced distribution due to a large probability of repetition
when a conventional random function is used. When a random number needs to be obtained,
a corresponding random number can be obtained from the random number array.
[0039] FIG. 1 is a flowchart illustrating a random number generation method, according to
an implementation of the present patent.
[0040] As shown in FIG. 1, the random number generation method in the present implementation
of the present patent includes the following steps:
S110. Generate a random number array, where the random number array includes
N storage units, each of the storage units stores a random number, and
N is a positive integer.
[0041] In the present implementation of the present patent, the
N storage units store different random numbers.
[0042] It can be understood that in the present implementation of the present patent, the
storage units in the generated random number array store different corresponding random
numbers. For example, if one storage unit stores a random number 2, no other storage
unit stores a random number 2.
[0043] In the present implementation of the present patent, the
N storage units each can store 1 to
N integers, so that a random number stored in each storage unit is different from a
random number stored in another storage unit.
[0044] In another implementation of the present patent, a length of the random number array
is configurable, and is set as required in advance.
[0045] S120. Perform random shuffling on the storage units in the random number array.
[0046] It is worthwhile to note that random shuffling in the present implementation of the
present patent indicates that random exchange is performed on random numbers stored
in the
N storage units in the random number array, so that the random numbers stored in the
storage units are randomly shuffled. It resolves a problem of imbalanced distribution
due to a large probability that repetition occurs when a random function in the existing
technology is used. In the present implementation of the present patent, the random
numbers stored in the
N storage units can be randomly exchanged using a plurality of methods. These methods
are described in detail in later implementations. For a person skilled in the art,
random shuffling can be performed on the random numbers stored in the random number
array using a plurality of methods, so that the random numbers are randomly shuffled.
Therefore, the present patent is not limited to a random exchange algorithm mentioned
in the following implementations of the present patent. Any algorithm that can achieve
the previous purpose should fall within the protection scope of the present patent.
[0047] S130. Receive a random number retrieval instruction, and read, from a corresponding
storage unit in the random number array based on the random number retrieval instruction,
a random number stored in the storage unit.
[0048] In the present implementation of the present patent, after the random number retrieval
instruction is received, corresponding random numbers can be read from the random
number array in sequence, or corresponding random numbers can be read from the random
number array at random. Certainly, in the present implementation of the present patent,
the corresponding random numbers can be read from the random number array in another
way.
[0049] In a specific implementation of the present patent, after the random number retrieval
instruction is received, an identifier value of a currently read storage unit (that
is, an identifier value of a previously read storage unit) is obtained based on the
random number retrieval instruction, and a random number stored in a next storage
unit is read based on the identifier value of the currently read storage unit.
[0050] It is worthwhile to note that each time the random number retrieval instruction is
received, whether the read storage unit is the last storage unit in the random number
array is further determined. If no, the random number stored in the next storage unit
is further read. If yes, a new random number array needs to be generated, that is,
step S110 is performed.
[0051] The random number generation method in the present implementation of the present
patent includes the following: first, generating the random number array that includes
the N storage units storing the random numbers; then, performing random shuffling
on the storage units in the random number array; and receiving the random number retrieval
instruction, and reading, from the corresponding storage unit in the random number
array, the random number stored in the storage unit. Because random shuffling is performed
on the storage units in the random number array, a plurality of random numbers obtained
in a relatively short unit time have a low repetition rate, to achieve balanced distribution.
Therefore, the random number generation method in the present patent can achieve relatively
high randomness.
[0052] The following describes in detail a random number retrieval process in the present
patent with reference to FIG. 2, so that a person skilled in the art can more clearly
understand the process.
[0053] S210. Receive a random number retrieval instruction.
[0054] S220. Determine whether a currently read storage unit is the last storage unit in
a random number array.
[0055] Each time the random number retrieval instruction is received, whether the currently
read storage unit is the last storage unit in the random number array is further determined.
If no, a random number stored in a next storage unit is further read.
[0056] S230. If yes, initialize the random number array, and generate a new random number
array.
[0057] If it is determined that the currently read storage unit is the last storage unit
in the random number array, that is, random numbers stored in all storage units in
the random number array have been read. Therefore, the random number array needs to
be initialized, and the new random number array is generated.
[0058] In the present implementation of the present patent, if it is determined that the
current storage unit is not the last storage unit in the random number array, a random
number stored in a corresponding storage unit is directly read from the storage unit
in the random number array based on the random number retrieval instruction.
[0059] S240. Perform random shuffling on storage units in the random number array, that
is, cyclically shuffle locations of the storage units in the random number array.
[0060] In the present implementation of the present patent, the locations of the storage
units in the random number array are cyclically shuffled, so that the random numbers
stored in the storage units are randomly shuffled. It resolves a problem of imbalanced
distribution due to a large probability that repetition occurs when a random function
in the existing technology is used. In the present implementation of the present patent,
random exchange can be performed on the random numbers stored in the
N storage units using a plurality of methods, so that the random numbers are randomly
shuffled. The present implementation of the present patent is not limited thereto.
[0061] S250. Select, based on a previously obtained identifier value of a storage unit,
data stored in a next storage unit in the random number array, and use the data as
a currently to-be-obtained random number.
[0062] An identifier value of a currently read storage unit (that is, an identifier value
of a previously read storage unit) is obtained based on the random number retrieval
instruction, and a random number stored in a next storage unit is read based on the
identifier value of the currently read storage unit. For example, the random numbers
can be read in sequence.
[0063] It is worthwhile to note that the corresponding random numbers can further be read
from the random number array in another way. The present implementation of the present
patent is not limited to reading the corresponding random numbers from the random
number array in sequence.
[0064] The random number generation method in the present patent can be specified with reference
to the number of seconds for a program in the JAVA language. Details are described
as follows:
[0065] First, a random number array is initialized, and a storage unit is defined to obtain
an identifier value and a length of the random number array. After the random number
instruction is received, whether the current storage unit is the last storage unit
in the random number array is determined. If no, a new random number array needs to
be generated; then the storage units in the random number array are cyclically shuffled;
and eventually the data stored in the next storage unit in the random number array
is selected as the currently to-be-obtained random number based on the previously
obtained identifier value of the storage unit.
[0066] It is worthwhile to note that the random number generation method in the present
patent is not limited to implementation based on the JAVA language, and can be implemented
using another computer language.
[0067] The random number generation method in the present implementation of the present
patent includes the following: first generating the random number array that includes
N storage units storing random numbers; then, performing random shuffling on the storage
units in the random number array; and receiving the random number retrieval instruction,
and reading, from a corresponding storage unit in the random number array, a random
number stored in the storage unit. Because random shuffling is performed on the storage
units in the random number array, a plurality of random numbers obtained in a relatively
short unit time have a low repetition rate to achieve balanced distribution. Therefore,
the random number generation method in the present patent can achieve relatively high
randomness.
[0068] The following describes in detail a process in which random shuffling is performed
on the storage units in the random number array in the present patent with reference
to FIG. 3, so that a person skilled in the art can more clearly understand the process.
[0069] S310. Generate a random value based on a current time and a random function, where
each storage unit has an identifier value. The identifier value is used to distinguish
between identifiers of storage units. In the present implementation of the present
patent, an identifier value of a storage unit in an initial state (that is, before
the random shuffling) can be equal to a random number stored in the storage unit.
[0070] It is worthwhile to note that the random value generated in step S310 is conceptually
different from the random number stored in the storage unit. The random value generated
in the present step is used to determine an identifier value of a to-be-exchanged
storage unit.
[0071] When
i is greater than 1 and less than
N, the
ith random value is generated based on a current time and the
(i-1)th random value; or when
i is equal to 1, the ith random value is generated based on a current time, where
i is the number of exchange times. In other words, when the random value is generated
for the first time, the random value is generated based on the current time. When
the random value is not generated for the first time, the
ith random value is generated based on the current time and the
(i-1)th random value.
[0072] In the present implementation of the present patent, after a random number array
is generated, each storage unit has an identifier value. The random value is generated
based on the random function, and the identifier value of the to-be-exchanged storage
unit is generated based on the random value, to determine the to-be-exchanged storage
unit.
[0073] S320. Exchange a random number in a to-be-exchanged storage unit with a random number
in a target storage unit based on the identifier value and a predetermined exchange
rule.
[0074] When the
ith exchange is performed, a random number in a storage unit corresponding to the
ith random value is exchanged with a random number in the
(N+
1-i)th storage unit.
[0075] For example, after the random number array is generated, each storage unit has an
identifier value, and storage units can be distinguished based on the identifier values.
When
i is 1, the first random value is generated based on the current time, and an identifier
value of a to-be-exchanged storage unit is generated based on the first random value.
A random number in a storage unit corresponding to the first random value is exchanged
with a random number in the
Nth storage unit according to the predetermined exchange rule, that is, the random
number in the storage unit corresponding to the first random value is stored in the
Nth storage unit, and the random number in the
Nth storage unit is stored in the storage unit corresponding to the first random value.
When
i is 2, the second random value is generated based on the current time and the first
random value, and an identifier value of a to-be-exchanged storage unit is generated
based on the second random value. A random number in a storage unit corresponding
to the second random value is exchanged with a random number in the
(N-1)th storage unit based on a predetermined exchange rule, that is, the random number
in the storage unit corresponding to the second random value is stored in the
(N-1)th storage unit, and the random number in the
(N-1)th storage unit is stored in the storage unit corresponding to the second random value.
By analogy, similar operations are performed until exchange is completed for the random
numbers stored in all the storage units in the random number array. In the previous
implementation, exchange is first performed between the storage unit corresponding
to the identifier value in the first exchange calculation and the
Nth storage unit. Alternatively, in another implementation of the present patent, exchange
can be first performed on the first storage unit.
[0076] For example, a random number array randArry[] is initialized. A natural number is
assigned to each storage unit in the random number array. For example, randArry[0]=1,
randArry[1]=2, ..., and randArry[n-1]=n. Locations of the storage units in the random
number array are cyclically shuffled. For example, a value stored in each storage
unit in the random number array can be exchanged with a value stored in the
ith to last storage unit, and
i progressively decreases from n-1, for example, exchange is performed between randArry[1]=2
and randArry[n-1]=n.
[0077] It is worthwhile to note that the method for exchanging random numbers in storage
units in the present implementation of the present patent is only one type of the
predetermined exchange rule. To be specific, the predetermined exchange rule can be
set based on an actual requirement, and exchange is performed on random numbers in
storage units by using different exchange methods.
[0078] S330. Determine whether exchange has been performed on all storage units in a random
number array.
[0079] S340. If yes, determine that the random numbers stored in the storage units are randomly
shuffled. Therefore, the random number array is available for use.
[0080] It is determined that exchange has been performed on all the random numbers stored
in the
N storage units in the random number array. The identifier value of the currently read
storage unit is obtained based on the random number retrieval instruction, and a random
number stored in a next storage unit is read based on the identifier value of the
currently read storage unit.
[0081] It is worthwhile to note that the corresponding random numbers can be read from the
random number array in another way. The present implementation of the present patent
is not limited to reading the corresponding random numbers from the random number
array in sequence.
[0082] The random number generation method in the present implementation of the present
patent includes the following: first generating the random number array that includes
the
N storage units storing the random numbers; then, performing random shuffling on the
storage units in the random number array; and receiving the random number retrieval
instruction, and reading, from the corresponding storage unit in the random number
array, the random number stored in the storage unit. Because random shuffling is performed
on the storage units in the random number array, a plurality of random numbers obtained
in a relatively short unit time have a low repetition rate, to achieve balanced distribution.
Therefore, the random number generation method in the present patent can achieve relatively
high randomness.
[0083] An implementation of the present disclosure further provides a random number generation
device corresponding to the random number generation method provided in the previous
implementations. Because the random number generation device provided in the present
implementation of the present disclosure has the same or similar technical features
with the random number generation method provided in the previous implementations,
the previous implementations of the random number generation method are also applicable
to the random number generation device provided in the present implementation, and
are not described in detail in the present implementation. As shown in FIG. 4, the
random number generation device can include a generation module 110, a random shuffling
module 120, and a reading module 130.
[0084] The generation module 110 is configured to generate a random number array, where
the random number array includes
N storage units, each of the storage units stores a random number, and
N is a positive integer.
[0085] In an implementation of the present patent, the
N storage units store different random numbers.
[0086] The random shuffling module 120 is configured to perform random shuffling on the
storage units in the random number array.
[0087] The reading module 130 is configured to receive a random number retrieval instruction,
and read, from a corresponding storage unit in the random number array based on the
random number retrieval instruction, a random number stored in the storage unit.
[0088] In an implementation of the present patent, FIG. 5 is a schematic structural diagram
illustrating a random number generation device, according to another implementation
of the present patent. That is, based on FIG. 4, as shown in FIG. 5, the random shuffling
module 120 includes an identifier value generation submodule 1201 and an exchange
submodule 1202. In an implementation of the present patent, the identifier value generation
submodule 1201 is configured to generate a random value based on a random function,
and generate an identifier value of a to-be-exchanged storage unit based on the random
value. The exchange submodule 1202 is configured to exchange a random number in the
to-be-exchanged storage unit with a random number in a target storage unit based on
the identifier value and a predetermined exchange rule.
[0089] In an implementation of the present patent, when
i is greater than 1 and less than
N, the identifier value generation submodule 1201 generates the
ith random value based on a current time and the
(i-1)th random value, where
i is the number of exchange times; or when
i is equal to 1, the identifier value generation submodule 1201 generates the ith random
value based on a current time.
[0090] In an implementation of the present patent, the predetermined exchange rule is as
follows: When the
ith exchange is performed, a random number in a storage unit corresponding to the ith
random value is exchanged with a random number in the
(N+
1-i)th storage unit.
[0091] In an implementation of the present patent, after the random number retrieval instruction
is received, whether the current storage unit is the last storage unit in the random
number array is determined. If no, a random number stored in a next storage unit is
read; or if yes, a new random number array needs to be generated.
[0092] In an implementation of the present patent, FIG. 6 is a schematic structural diagram
illustrating a random number generation device, according to another implementation
of the present patent. Based on FIG. 4, the reading module 130 includes the following:
a retrieval submodule 1301 and a reading submodule 1302.
[0093] The retrieval submodule 1301 is configured to obtain an identifier value of a currently
read storage unit based on a random number retrieval instruction. The reading submodule
1302 is configured to read, based on the identifier value of the currently read storage
unit, a random number stored in a next storage unit.
[0094] In the random number generation device in the present implementation of the present
patent, first, a generation module generates a random number array that includes N
storage units storing random numbers; then, a random shuffling module performs random
shuffling on the storage units in the random number array; and the reading module
can receive the random number retrieval instruction, and read, from a corresponding
storage unit in the random number array, a random number stored in the storage unit.
Because the random shuffling module performs random shuffling on the storage units
in the random number array, a plurality of random numbers obtained in a relatively
short unit time have a low repetition rate, to achieve balanced distribution. Therefore,
the random number generation device in the present patent can achieve relatively high
randomness.
[0095] FIG. 7 is a flowchart illustrating a random number retrieval method, according to
an implementation of the present patent. The random number retrieval method shown
in the present implementation of the present patent is described from a retrieval
perspective. As shown in FIG. 7, the random number retrieval method includes the following
steps:
S710. Receive a random number retrieval instruction, and obtain a random number array,
where the random number array includes
N storage units, each of the storage units stores a random number, locations of the
N storage units in the random number array are determined through random shuffling,
and
N is a positive integer.
[0096] In the present implementation of the present patent, the
N storage units store different random numbers.
[0097] In the present implementation of the present patent, the
N storage units each can store 1 to
N integers, so that a random number stored in each storage unit is different from a
random number stored in another storage unit.
[0098] In another implementation of the present patent, a length of the random number array
is configurable, and is set as required in advance.
[0099] In the present implementation of the present patent, after the random number array
is generated, each storage unit has an identifier value. A random value is generated
based on a random function, and an identifier value of a to-be-exchanged storage unit
is generated based on the random value, to determine the to-be-exchanged storage unit.
[0100] In the present implementation of the present patent, a random number in the to-be-exchanged
storage unit is exchanged with a random number in a target storage unit based on the
identifier value and a predetermined exchange rule.
[0101] It is worthwhile to note that the method for exchanging random numbers in storage
units in the present implementation of the present patent is only one type of the
predetermined exchange rule. That is, the predetermined exchange rule can be set based
on an actual requirement, and exchange is performed on random numbers in storage units
by using different exchange methods.
[0102] S720. Obtain, from a corresponding storage unit in the random number array based
on the random number retrieval instruction, a random number stored in the storage
unit.
[0103] In a specific implementation of the present patent, after the random number retrieval
instruction is received, an identifier value of a currently read storage unit (that
is, an identifier value of a previously read storage unit) is obtained based on the
random number retrieval instruction, and a random number stored in a next storage
unit is read based on the identifier value of the currently read storage unit.
[0104] The random number retrieval method in the present implementation of the present patent
includes the following: first, receiving the random number retrieval instruction;
then obtaining the random number array, and determining locations of the N storage
units in the random number array through random shuffling; and reading, from the corresponding
storage unit in the random number array based on the received random number retrieval
instruction, the random number stored in the storage unit. Because random shuffling
is performed on the storage units in the random number array, a plurality of random
numbers obtained in a relatively short unit time have a low repetition rate, to achieve
balanced distribution. Therefore, the random number retrieval method in the present
patent can achieve relatively high randomness.
[0105] An implementation of the present disclosure further provides a random number retrieval
device corresponding to the random number retrieval method provided in the previous
implementations. The random number retrieval device provided in the present implementation
of the present disclosure has the same or similar technical features with the random
number retrieval method provided in the previous implementations. Therefore, the implementations
of the random number retrieval method are also applicable to the random number retrieval
device provided in the present implementation. Details are not described in the present
implementation. As shown in FIG. 8, the random number retrieval device can include:
a receiving module 210, a random number array retrieval module 220, and a random number
retrieval module 230.
[0106] The receiving module 210 is configured to receive a random number retrieval instruction.
[0107] The random number array retrieval module 220 is configured to obtain a random number
array, where the random number array includes
N storage units, each of the storage units stores a random number, locations of the
N storage units in the random number array are determined through random shuffling,
and
N is a positive integer.
[0108] In an implementation of the present patent, the
N storage units store different random numbers.
[0109] The random number retrieval module 230 is configured to obtain, from a corresponding
storage unit in the random number array based on the random number retrieval instruction,
a random number stored in the storage unit.
[0110] In an implementation of the present patent, FIG. 9 is a schematic structural diagram
illustrating a random number retrieval device, according to another implementation
of the present patent. Based on FIG. 8, the random number retrieval module 230 shown
in FIG. 9 includes the following: a first retrieval submodule 2301, configured to
obtain an identifier value of a currently read storage unit based on the random number
retrieval instruction; and a second retrieval submodule 2302, configured to obtain,
based on the identifier value of the currently read storage unit, a random number
stored in a next storage unit.
[0111] In the random number retrieval device in the present implementation of the present
patent, first, a receiving module receives a random number retrieval instruction;
then, a random number array retrieval module obtains a random number array, and locations
of
N storage units in the random number array are determined through random shuffling;
and a random number retrieval module reads, from a corresponding storage unit in the
random number array based on the received random number retrieval instruction, the
random number stored in the storage unit. Because random shuffling is performed on
the storage units in the random number array, a plurality of random numbers obtained
in a relatively short unit time have a low repetition rate, to achieve balanced distribution.
Therefore, the random number retrieval device in the present patent can achieve relatively
high randomness.
[0112] In the description of the present patent, it should be understood that terms "first"
and "second" are merely used to description, and cannot be understood as an indication
or implication of relative importance or implicit indication of the number of indicated
technical features. Therefore, a characteristic modified by "first" or "second" can
explicitly or implicitly include one or more features. In the description of the present
patent, "a plurality of" means at least two, for example, two or three, unless otherwise
stated.
[0113] In the description of the present specification, reference terms such as "an implementation",
"some implementations", "an example", "a specific example", and "some examples" mean
that specific features, structures, materials, or characteristics described with reference
to the implementation or the example are included in one or more implementations or
examples in the present patent. In the present specification, the previous terms are
described not necessarily for the same implementation or example. In addition, the
described specific features, structures, materials, or characteristics can be combined
in a proper way in any one or more implementations or examples. Further, a person
skilled in the art can combine uncontradicted features of different implementations
or examples described in the present specification.
[0114] Any process or method description described in the flowchart or in another way can
be understood as a module, a segment, or a part of code of an executable instruction
that includes one or more steps to implement a specific logical function or process,
and the implementations of the present patent include another implementation in which
functions can be performed in a sequence different from the shown or discussed sequence,
for example, the related functions are performed simultaneously or in a reverse sequence.
It should be understood by a person skilled in the art related to the implementations
of the present patent.
[0115] It should be understood that parts of the present patent can be implemented by hardware,
software, firmware, or a combination thereof. In the previous implementations, a plurality
of steps or methods can be implemented by using software that is stored in a memory
and executed by an appropriate instruction execution system or firmware. For example,
if the steps or the methods are implemented by using hardware that can be implemented
by using any one or a combination of the following technologies in the art: a discrete
logic circuit including a logic gate circuit for implementing logical functions of
a data signal, an application-specific integrated circuit having a proper combinational
logic gate circuit, a programmable gate array (PGA), a field programmable gate array
(FPGA), etc.
[0116] A person of ordinary skill in the art can understand that all or some of the steps
in the method implementations can be implemented by a program instructing relevant
hardware. The program can be stored in a computer readable storage medium. When the
program runs, one of or a combination of the steps in the method implementations is
performed.
[0117] In addition, functional units in the implementations of the present patent can be
integrated into one processing module, or each of the units can exist alone physically,
or two or more units are integrated into one module. The integrated module can be
implemented in a form of hardware, or can be implemented in a form of a software functional
module. When the integrated module is implemented in the form of a software functional
module and sold or used as an independent product, the integrated module can be stored
in a computer-readable storage medium.
[0118] The previous storage medium can be a read-only memory, a magnetic disk, an optical
disk, etc. Although the implementations of the present patent have been shown and
described above, it can be understood that the previous implementations are examples
and cannot be understood as a limitation on the present patent. A person of ordinary
skill in the art can make change, modification, replacement, and modification to the
previous implementations within the scope of the present patent.