ES2847287T3 - Método y dispositivo de generación y adquisición de números aleatorios - Google Patents
Método y dispositivo de generación y adquisición de números aleatorios Download PDFInfo
- Publication number
- ES2847287T3 ES2847287T3 ES17765739T ES17765739T ES2847287T3 ES 2847287 T3 ES2847287 T3 ES 2847287T3 ES 17765739 T ES17765739 T ES 17765739T ES 17765739 T ES17765739 T ES 17765739T ES 2847287 T3 ES2847287 T3 ES 2847287T3
- Authority
- ES
- Spain
- Prior art keywords
- random number
- random
- storage unit
- array
- storage units
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/582—Pseudo-random number generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30021—Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Software Systems (AREA)
- Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
- Read Only Memory (AREA)
Abstract
Un método de generación de números aleatorios, que comprende: generar una matriz de números aleatorios, en donde la matriz de números aleatorios comprende N unidades de almacenamiento, cada una de las unidades de almacenamiento almacena un número aleatorio, y N es un número entero positivo (S110); realizar la mezcla aleatoria de los números aleatorios almacenados en las unidades de almacenamiento en la matriz de números aleatorios (S120), en donde cada una de las unidades de almacenamiento tiene un valor identificador, y en donde la mezcla aleatoria de los números aleatorios almacenados en las unidades de almacenamiento de la matriz de números aleatorios comprende generar (310) un valor aleatorio en función de una función aleatoria, determinar (310) un valor identificador de una unidad de almacenamiento a intercambiar en función del valor aleatorio, y intercambiar (320) un número aleatorio en la unidad de almacenamiento a intercambiar con un número aleatorio en una unidad de almacenamiento objetivo en función del valor identificador y una regla de intercambio predeterminada (320); y recibir (S130) una instrucción de recuperación de números aleatorios, y leer, de una unidad de almacenamiento correspondiente en la matriz de números aleatorios en función de la instrucción de recuperación de números aleatorios, un número aleatorio almacenado en la unidad de almacenamiento correspondiente.
Description
DESCRIPCIÓN
Método y dispositivo de generación y adquisición de números aleatorios
La presente patente reivindica la prioridad de la solicitud de patente china N.° 201610152995.2, presentada el 17 de marzo de 2016 y titulada "RANDOM NUMBER GENERATION AND ACQUISITION METHOD AND DEVICE".
CAMPO TÉCNICO
La presente patente se refiere al campo de las tecnologías informáticas y, en particular, a un método y a un dispositivo de generación y recuperación de números aleatorios.
ANTECEDENTES
Los requisitos para la generación de números aleatorios son cada vez más elevados, ya que los números aleatorios se aplican ampliamente en el campo de la informática. En este momento, hay dos métodos de generación de números aleatorios comúnmente utilizados. Uno es un método de software en el que se utiliza el tiempo del sistema como semilla para la generación de números aleatorios, y a continuación se genera un número aleatorio en función de una función del sistema. El otro es un método de hardware en el que un dispositivo de hardware que genera un número aleatorio se diseña para generar un número aleatorio en función de una señal aleatoria.
Sin embargo, el método de generación de números aleatorios por defecto del sistema utilizado por el software tiene la siguiente desventaja: los números aleatorios generados en el mismo instante (el mismo segundo, o el mismo milisegundo) tienen una alta tasa de repetición, lo que da lugar a una distribución desequilibrada de los números aleatorios, es decir, se generan números pseudoaleatorios. En un sistema de aplicación informática, el tiempo se utiliza como semilla para la generación de números aleatorios, por lo tanto, debido a las semillas de tiempo iguales, los números aleatorios generados en un tiempo relativamente corto, tal como la duración, que incluye los mismos milisegundos o segundos, tienen una alta tasa de repetición, lo que da lugar a una distribución desequilibrada de los números aleatorios.
Knuth D E: "The art of computer programming, PASSAGE, ART OF COMPUTER PROGRAMMING" describe la aleatorización por mezcla con respecto a dos secuencias Xn e Yn.
El documento FR 2829643 describe un método para generar números aleatorios.
RESUMEN
El propósito de la presente patente es resolver en cierta medida uno de los problemas técnicos anteriores.
Por lo tanto, el primer propósito de la presente patente es proporcionar un método de generación de números aleatorios. El método incluye lo siguiente: generar una matriz de números aleatorios que incluya N unidades de almacenamiento que almacenen números aleatorios; a continuación, realizar una mezcla aleatoria en las unidades de almacenamiento de la matriz de números aleatorios; y cuando se reciba una instrucción de recuperación de números aleatorios, leer un número aleatorio de una unidad de almacenamiento correspondiente de la matriz de números aleatorios. En las formas de realización de la presente patente, varios números aleatorios obtenidos en un tiempo unitario relativamente corto tienen una tasa de repetición baja para lograr una distribución equilibrada. Por consiguiente, el método de generación de números aleatorios en la presente patente puede lograr una aleatoriedad relativamente alta.
El segundo propósito de la presente patente es proporcionar un dispositivo de generación de números aleatorios. El tercer propósito de la presente patente es proporcionar un método de recuperación de números aleatorios.
El cuarto propósito de la presente patente es proporcionar un dispositivo de recuperación de números aleatorios. Para lograr los propósitos anteriores, un primer aspecto de las formas de realización de la presente patente proporciona un método de generación de números aleatorios, que incluye las siguientes etapas: generar una matriz de números aleatorios, en la que la matriz de números aleatorios incluye N unidades de almacenamiento, cada una de las unidades de almacenamiento almacena un número aleatorio, y N es un número entero positivo; realizar una mezcla aleatoria en las unidades de almacenamiento de la matriz de números aleatorios; y al recibir una instrucción de recuperación de números aleatorios, leer, de una unidad de almacenamiento correspondiente en la matriz de números aleatorios en función de la instrucción de recuperación de números aleatorios, un número aleatorio almacenado en la unidad de almacenamiento.
El método de generación de números aleatorios en las formas de realización de la presente patente incluye lo siguiente: en primer lugar, generar la matriz de números aleatorios que incluye las N unidades de almacenamiento que almacenan los números aleatorios; a continuación, realizar la mezcla aleatoria en las unidades de almacenamiento en
la matriz de números aleatorios; y recibir la instrucción de recuperación de números aleatorios y leer, de la unidad de almacenamiento correspondiente en la matriz de números aleatorios, el número aleatorio almacenado en la unidad de almacenamiento. Debido a que la mezcla aleatoria se realiza en las unidades de almacenamiento en la matriz de números aleatorios, varios números aleatorios obtenidos en un tiempo unitario relativamente corto tienen una tasa de repetición baja, para lograr una distribución equilibrada. Por consiguiente, el método de generación de números aleatorios en la presente patente puede lograr una aleatoriedad relativamente alta.
En una forma de realización de la presente patente, las N unidades de almacenamiento almacenan diferentes números aleatorios.
En una forma de realización de la presente patente, en el método de generación de números aleatorios, cada una de las unidades de almacenamiento tiene un valor identificador, y la mezcla aleatoria en las unidades de almacenamiento de la matriz de números aleatorios incluye lo siguiente: generar un valor aleatorio en función de una función aleatoria y generar un valor identificador de una unidad de almacenamiento a intercambiar en función del valor aleatorio; e intercambiar un número aleatorio en la unidad de almacenamiento a intercambiar con un número aleatorio en una unidad de almacenamiento de destino en función del valor identificador y una regla de intercambio predeterminada.
En una forma de realización de la presente patente, la generación de un valor aleatorio en función de una función aleatoria incluye lo siguiente: cuando i es mayor que 1 y menor que N, generar el valor aleatorio i-ésimo en función de un instante actual y el valor aleatorio (i-l)-ésimo, donde i es el número de veces de intercambio; o cuando i es igual a 1, generar el valor aleatorio i-ésimo en función de un instante actual.
En una forma de realización de la presente patente, la regla de intercambio predeterminada es de la siguiente manera: Cuando se realiza el intercambio i-ésimo, se intercambia un número aleatorio en una unidad de almacenamiento correspondiente al valor aleatorio i-ésimo con un número aleatorio en la unidad de almacenamiento (N+ 1-i)-ésima.
En una forma de realización de la presente patente, la lectura, de una unidad de almacenamiento correspondiente en la matriz de números aleatorios en función de la instrucción de recuperación de números aleatorios, de un número aleatorio almacenado en la unidad de almacenamiento incluye lo siguiente: obtener un valor identificador de una unidad de almacenamiento de lectura actual en función de la instrucción de recuperación de números aleatorios; y leer, en función del valor identificador de la unidad de almacenamiento leída en este momento, un número aleatorio almacenado en una unidad de almacenamiento siguiente.
Para lograr los propósitos anteriores, un segundo aspecto de las formas de realización de la presente patente proporciona un dispositivo de generación de números aleatorios, que incluye: un módulo de generación, configurado para generar una matriz de números aleatorios, en la que la matriz de números aleatorios incluye N unidades de almacenamiento, cada una de las unidades de almacenamiento almacena un número aleatorio, y N es un número entero positivo; un módulo de mezcla aleatoria, configurado para realizar la mezcla aleatoria en las unidades de almacenamiento en la matriz de números aleatorios; y un módulo de lectura, configurado para recibir una instrucción de recuperación de números aleatorios, y leer, de una unidad de almacenamiento correspondiente en la matriz de números aleatorios en función de la instrucción de recuperación de números aleatorios, un número aleatorio almacenado en la unidad de almacenamiento.
En el dispositivo de generación de números aleatorios de las formas de realización de la presente patente, en primer lugar, el módulo de generación genera la matriz de números aleatorios que incluye las N unidades de almacenamiento que almacenan los números aleatorios; a continuación, el módulo de mezcla aleatoria realiza la mezcla aleatoria en las unidades de almacenamiento en la matriz de números aleatorios; y el módulo de lectura puede recibir la instrucción de recuperación de números aleatorios y leer, de la unidad de almacenamiento correspondiente en la matriz de números aleatorios, el número aleatorio almacenado en la unidad de almacenamiento. Debido a que el módulo de mezcla aleatoria realiza la mezcla aleatoria en las unidades de almacenamiento en la matriz de números aleatorios, varios números aleatorios obtenidos en un tiempo unitario relativamente corto tienen una baja tasa de repetición para lograr una distribución equilibrada. Por consiguiente, el dispositivo de generación de números aleatorios de la presente patente puede lograr una aleatoriedad relativamente alta.
En una forma de realización de la presente patente, las N unidades de almacenamiento almacenan diferentes números aleatorios.
En una forma de realización de la presente patente, en el dispositivo de generación de números aleatorios, cada una de las unidades de almacenamiento tiene un valor identificador, y el módulo de mezcla aleatoria incluye lo siguiente: un submódulo de generación de valores identificadores, configurado para generar un valor aleatorio en función de una función aleatoria, y generar un valor identificador de una unidad de almacenamiento a intercambiar en función del valor aleatorio; y un submódulo de intercambio, configurado para intercambiar un número aleatorio en la unidad de almacenamiento a intercambiar con un número aleatorio en una unidad de almacenamiento de destino en función del valor identificador y una regla de intercambio predeterminada.
En una forma de realización de la presente patente, en el dispositivo de generación de números aleatorios, cuando i es mayor que 1 y menor que N, el submódulo de generación de valores identificadores genera el valor aleatorio iésimo en función de un instante actual y el valor aleatorio (i-l)-ésimo, donde i es el número de veces de intercambio; o cuando i es igual a 1, el submódulo de generación de valores identificadores genera el valor aleatorio i-ésimo en función de un instante actual.
En una forma de realización de la presente patente, la regla de intercambio predeterminada es de la siguiente manera: cuando se realiza el intercambio i-ésimo, se intercambia un número aleatorio en una unidad de almacenamiento correspondiente al valor aleatorio i-ésimo con un número aleatorio en la unidad de almacenamiento (N+1-i)-ésima.
En una forma de realización de la presente patente, el módulo de lectura incluye lo siguiente: un submódulo de recuperación, configurado para obtener un valor identificador de una unidad de almacenamiento leída en este momento en función de la instrucción de recuperación de números aleatorios; y un submódulo de lectura, configurado para leer, en función del valor identificador de la unidad de almacenamiento leída en este momento, un número aleatorio almacenado en una unidad de almacenamiento siguiente.
Para lograr los propósitos anteriores, un tercer aspecto de las formas de realización de la presente patente proporciona un método de recuperación de números aleatorios, que incluye las siguientes etapas: recibir una instrucción de recuperación de números aleatorios y obtener una matriz de números aleatorios, en la que la matriz de números aleatorios incluye N unidades de almacenamiento, cada una de las unidades de almacenamiento almacena un número aleatorio, y las ubicaciones de las N unidades de almacenamiento en la matriz de números aleatorios se determinan mediante la mezcla aleatoria, en la que N es un número entero positivo; y obtener, de una unidad de almacenamiento correspondiente en la matriz de números aleatorios en función de la instrucción de recuperación de números aleatorios, un número aleatorio almacenado en la unidad de almacenamiento.
El método de recuperación de números aleatorios en las formas de realización de la presente patente incluye lo siguiente: en primer lugar, recibir la instrucción de recuperación de números aleatorios; a continuación, obtener la matriz de números aleatorios y determinar las ubicaciones de las N unidades de almacenamiento en la matriz de números aleatorios mediante una mezcla aleatoria; y leer, de la unidad de almacenamiento correspondiente en la matriz de números aleatorios en función de la instrucción de recuperación de números aleatorios, el número aleatorio almacenado en la unidad de almacenamiento. Debido a que la mezcla aleatoria se realiza en las unidades de almacenamiento de la matriz de números aleatorios, varios números aleatorios obtenidos en un tiempo unitario relativamente corto tienen una baja tasa de repetición para lograr una distribución equilibrada. Por consiguiente, el método de recuperación de números aleatorios de la presente patente puede lograr una aleatoriedad relativamente alta.
En una forma de realización de la presente patente, las N unidades de almacenamiento almacenan diferentes números aleatorios.
En una forma de realización de la presente patente, en el método de recuperación de números aleatorios, cada una de las unidades de almacenamiento tiene un valor identificador, y se realiza una mezcla aleatoria en las ubicaciones de las N unidades de almacenamiento de la matriz de números aleatorios utilizando las siguientes etapas: generar un valor aleatorio en función de una función aleatoria y generar un valor identificador de una unidad de almacenamiento a intercambiar en función del valor aleatorio; e intercambiar un número aleatorio en la unidad de almacenamiento a intercambiar con un número aleatorio en una unidad de almacenamiento de destino en función del valor identificador y una regla de intercambio predeterminada.
En una forma de realización de la presente patente, la obtención, a partir de una unidad de almacenamiento correspondiente en la matriz de números aleatorios en función de la instrucción de recuperación de números aleatorios, de un número aleatorio almacenado en la unidad de almacenamiento incluye lo siguiente: obtener un valor identificador de una unidad de almacenamiento leída en este momento en función de la instrucción de recuperación de números aleatorios; y leer, en función del valor identificador de la unidad de almacenamiento leída en este momento, un número aleatorio almacenado en una unidad de almacenamiento siguiente.
Para lograr los propósitos anteriores, un cuarto aspecto de las formas de realización de la presente patente proporciona un dispositivo de recuperación de números aleatorios, que incluye: un módulo receptor, configurado para recibir una instrucción de recuperación de números aleatorios; un módulo de recuperación de matrices de números aleatorios, configurado para obtener una matriz de números aleatorios, en la que la matriz de números aleatorios incluye N unidades de almacenamiento, cada una de las unidades de almacenamiento almacena un número aleatorio, y las ubicaciones de las N unidades de almacenamiento en la matriz de números aleatorios se determinan mediante mezcla aleatoria, en la que N es un número entero positivo; y un módulo de recuperación de números aleatorios, configurado para obtener, de una unidad de almacenamiento correspondiente en la matriz de números aleatorios en función de la instrucción de recuperación de números aleatorios, un número aleatorio almacenado en la unidad de almacenamiento.
En el dispositivo de recuperación de números aleatorios de las formas de realización de la presente patente, en primer lugar, el módulo receptor recibe la instrucción de recuperación de números aleatorios; a continuación, el módulo de
recuperación de la matriz de números aleatorios obtiene la matriz de números aleatorios, y las ubicaciones de las N unidades de almacenamiento de la matriz de números aleatorios se determinan mediante mezcla aleatoria; y el módulo de recuperación de números aleatorios lee, de la unidad de almacenamiento correspondiente en la matriz de números aleatorios en función de la instrucción de recuperación de números aleatorios recibida, el número aleatorio almacenado en la unidad de almacenamiento. Debido a que la mezcla aleatoria se realiza en las unidades de almacenamiento en la matriz de números aleatorios, varios números aleatorios obtenidos en un tiempo unitario relativamente corto tienen una tasa de repetición baja, para lograr una distribución equilibrada. Por consiguiente, el dispositivo de recuperación de números aleatorios de la presente patente puede lograr una aleatoriedad relativamente alta.
En una forma de realización de la presente patente, las N unidades de almacenamiento almacenan diferentes números aleatorios.
En una forma de realización de la presente patente, el módulo de recuperación de números aleatorios incluye: un primer submódulo de recuperación, configurado para obtener un valor identificador de una unidad de almacenamiento leída en este momento en función de la instrucción de recuperación de números aleatorios; y un segundo submódulo de recuperación, configurado para obtener, en función del valor identificador de la unidad de almacenamiento leída en este momento, un número aleatorio almacenado en una unidad de almacenamiento siguiente.
Otros aspectos y ventajas de la presente patente se proporcionan en parte en la siguiente descripción. Algunos de ellos serán evidentes a partir de la siguiente descripción, o se pueden entender a través de la práctica de la presente patente.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
Los aspectos y ventajas anteriores y/o adicionales de la presente patente se harán evidentes y fáciles de entender en la descripción de las formas de realización con referencia a los dibujos adjuntos:
La FIG. 1 es un diagrama de flujo que ilustra un método de generación de números aleatorios, de acuerdo con una forma de realización de la presente patente;
La FIG. 2 es un diagrama de flujo que ilustra un proceso de recuperación de números aleatorios, de acuerdo con una forma de realización de la presente patente;
La FIG. 3 es un diagrama de flujo que ilustra un proceso en el que se realiza una mezcla aleatoria en unidades de almacenamiento en una matriz de números aleatorios, de acuerdo con una forma de realización de la presente patente;
La FIG. 4 es un diagrama estructural esquemático que ilustra un dispositivo de generación de números aleatorios, de acuerdo con una forma de realización de la presente patente;
La FIG. 5 es un diagrama estructural esquemático que ilustra un dispositivo de generación de números aleatorios, de acuerdo con otra forma de realización de la presente patente;
La FIG. 6 es un diagrama estructural esquemático que ilustra un dispositivo de generación de números aleatorios, de acuerdo con otra forma de realización de la presente patente;
La FIG. 7 es un diagrama de flujo que ilustra un proceso de recuperación de números aleatorios, de acuerdo con una forma de realización de la presente patente;
La FIG. 8 es un diagrama estructural esquemático que ilustra un dispositivo de recuperación de números aleatorios, de acuerdo con una forma de realización de la presente patente; y
La FIG. 9 es un diagrama estructural esquemático que ilustra un dispositivo de recuperación de números aleatorios, de acuerdo con otra forma de realización de la presente patente.
DESCRIPCIÓN DE LAS FORMAS DE REALIZACIÓN
A continuación se describen en detalle las formas de realización de la presente patente. Los ejemplos de las formas de realización se muestran en los dibujos adjuntos. Los mismos o similares números de referencia indican los mismos o similares elementos, o elementos que tienen las mismas o similares funciones. Las formas de realización que se describen a continuación con referencia a los dibujos adjuntos son ejemplos y tienen por objeto explicar la presente patente en lugar de limitar la presente patente.
En la presente patente, la mezcla aleatoria se realiza en las unidades de almacenamiento en una matriz de números aleatorios, de modo que los números aleatorios de la matriz de números aleatorios se mezclan aleatoriamente. Esto resuelve un problema de distribución desequilibrada debido a la gran probabilidad de repetición cuando se utiliza una
función aleatoria convencional. Cuando es necesario obtener un número aleatorio, se puede obtener un número aleatorio correspondiente de la matriz de números aleatorios.
La FIG. 1 es un diagrama de flujo que ilustra un método de generación de números aleatorios, de acuerdo con una forma de realización de la presente patente.
Según se muestra en la FIG. 1, el método de generación de números aleatorios en la presente forma de realización de la presente patente incluye las siguientes etapas:
S110. Generar una matriz de números aleatorios, donde la matriz de números aleatorios incluye N unidades de almacenamiento, cada una de las unidades de almacenamiento almacena un número aleatorio, y N es un número entero positivo.
En la presente forma de realización de la presente patente, las N unidades de almacenamiento almacenan diferentes números aleatorios.
Se puede entender que en la presente forma de realización de la presente patente, las unidades de almacenamiento en la matriz de números aleatorios generados almacenan diferentes números aleatorios correspondientes. Por ejemplo, si una unidad de almacenamiento almacena un número aleatorio 2, ninguna otra unidad de almacenamiento almacena un número aleatorio 2.
En la presente forma de realización de la presente patente, cada una de las N unidades de almacenamiento puede almacenar de 1 a N números enteros, de modo que un número aleatorio almacenado en cada unidad de almacenamiento es diferente de un número aleatorio almacenado en otra unidad de almacenamiento.
En otra forma de realización de la presente patente, se puede configurar la longitud de la matriz de números aleatorios, y se fija de antemano según se requiera.
S120. Realizar una mezcla aleatoria de las unidades de almacenamiento en la matriz de números aleatorios.
Merece la pena señalar que la mezcla aleatoria en la presente forma de realización de la presente patente indica que el intercambio aleatorio se realiza con los números aleatorios almacenados en las N unidades de almacenamiento de la matriz de números aleatorios, de modo que los números aleatorios almacenados en las unidades de almacenamiento se mezclan aleatoriamente. Esto resuelve un problema de distribución desequilibrada debido a la gran probabilidad de que se repita cuando se utiliza una función aleatoria en la tecnología existente. En la presente forma de realización de la presente patente, los números aleatorios almacenados en las N unidades de almacenamiento se pueden intercambiar aleatoriamente utilizando varios métodos. Estos métodos se describen en detalle en formas de realización más adelante. Para un experto en la técnica, la mezcla aleatoria se puede realizar en los números aleatorios almacenados en la matriz de números aleatorios utilizando varios métodos, de modo que los números aleatorios se mezclan aleatoriamente. Por consiguiente, la presente patente no está restringida a un algoritmo de intercambio aleatorio mencionado en las siguientes formas de realización de la presente patente. Cualquier algoritmo que pueda lograr el propósito anterior debe entrar en el alcance de protección de la presente patente.
S130. Recibir una instrucción de recuperación de números aleatorios y leer, de una unidad de almacenamiento correspondiente en la matriz de números aleatorios en función de la instrucción de recuperación de números aleatorios, un número aleatorio almacenado en la unidad de almacenamiento.
En la presente forma de realización de la presente patente, después de recibir la instrucción de recuperación de números aleatorios, los números aleatorios correspondientes se pueden leer de la matriz de números aleatorios en secuencia, o los números aleatorios correspondientes se pueden leer de la matriz de números aleatorios al azar. Ciertamente, en la presente forma de realización de la presente patente, los números aleatorios correspondientes se pueden leer de la matriz de números aleatorios de otra manera.
En una forma de realización específica de la presente patente, después de recibir la instrucción de recuperación de números aleatorios, se obtiene un valor identificador de una unidad de almacenamiento leída en este momento (es decir, un valor identificador de una unidad de almacenamiento leída anteriormente) en función de la instrucción de recuperación de números aleatorios, y se lee un número aleatorio almacenado en una unidad de almacenamiento siguiente en función del valor identificador de la unidad de almacenamiento leída en este momento.
Merece la pena señalar que cada vez que se recibe la instrucción de recuperación de números aleatorios, se determina con más detalle si la unidad de almacenamiento leída es la última unidad de almacenamiento en la matriz de números aleatorios. En caso negativo, se sigue leyendo el número aleatorio almacenado en la siguiente unidad de almacenamiento. En caso afirmativo, es necesario generar una nueva matriz de números aleatorios, es decir, se realiza la etapa S110.
El método de generación de números aleatorios en la presente forma de realización de la presente patente incluye lo siguiente: en primer lugar, generar la matriz de números aleatorios que incluye las N unidades de almacenamiento que almacenan los números aleatorios; a continuación, realizar la mezcla aleatoria en las unidades de almacenamiento en la matriz de números aleatorios; y recibir la instrucción de recuperación de números aleatorios, y leer, de la unidad de almacenamiento correspondiente en la matriz de números aleatorios, el número aleatorio almacenado en la unidad de almacenamiento. Debido a que la mezcla aleatoria se realiza en las unidades de almacenamiento en la matriz de números aleatorios, varios números aleatorios obtenidos en un tiempo unitario relativamente corto tienen una tasa de repetición baja, para lograr una distribución equilibrada. Por consiguiente, el método de generación de números aleatorios en la presente patente puede lograr una aleatoriedad relativamente alta.
A continuación, se describe en detalle un proceso de recuperación de números aleatorios en la presente patente con referencia a la FIG. 2, de modo que un experto en la técnica pueda comprender más claramente el proceso.
S210. Recibir una instrucción de recuperación de números aleatorios.
S220. Determinar si una unidad de almacenamiento leída en este momento es la última unidad de almacenamiento en una matriz de números aleatorios.
Cada vez que se recibe la instrucción de recuperación de números aleatorios, se determina con más detalle si la unidad de almacenamiento leída en este momento es la última unidad de almacenamiento en la matriz de números aleatorios. En caso negativo, se sigue leyendo un número aleatorio almacenado en la siguiente unidad de almacenamiento.
S230. En caso afirmativo, inicializar la matriz de números aleatorios y generar una nueva matriz de números aleatorios.
Si se determina que la unidad de almacenamiento leída en este momento es la última unidad de almacenamiento en la matriz de números aleatorios, es decir, que se han leído los números aleatorios almacenados en todas las unidades de almacenamiento en la matriz de números aleatorios. Por consiguiente, es necesario inicializar la matriz de números aleatorios y se genera la nueva matriz de números aleatorios.
En la presente forma de realización de la presente patente, si se determina que la unidad de almacenamiento actual no es la última unidad de almacenamiento en la matriz de números aleatorios, un número aleatorio almacenado en una unidad de almacenamiento correspondiente se lee directamente de la unidad de almacenamiento en la matriz de números aleatorios en función de la instrucción de recuperación de números aleatorios.
S240. Realizar la mezcla aleatoria en las unidades de almacenamiento en la matriz de números aleatorios, es decir, mezclar de forma cíclica las ubicaciones de las unidades de almacenamiento en la matriz de números aleatorios.
En la presente forma de realización de la presente patente, las ubicaciones de las unidades de almacenamiento en la matriz de números aleatorios se mezclan de forma cíclica, de modo que los números aleatorios almacenados en las unidades de almacenamiento se mezclan aleatoriamente. Esto resuelve un problema de distribución desequilibrada debido a la gran probabilidad de que se repita cuando se utiliza una función aleatoria en la tecnología existente. En la presente forma de realización de la presente patente, el intercambio aleatorio se puede realizar en los números aleatorios almacenados en las N unidades de almacenamiento utilizando varios métodos, de modo que los números aleatorios se mezclan aleatoriamente. La presente forma de realización de la patente actual no se limita a los mismos.
S250. Seleccionar, en función de un valor identificador obtenido anteriormente de una unidad de almacenamiento, los datos almacenados en una unidad de almacenamiento siguiente en la matriz de números aleatorios, y utilizar los datos como un número aleatorio a obtener en este momento.
Se obtiene un valor identificador de una unidad de almacenamiento leída en este momento (es decir, un valor identificador de una unidad de almacenamiento leída anteriormente) en función de la instrucción de recuperación de números aleatorios, y se lee un número aleatorio almacenado en una unidad de almacenamiento siguiente en función del valor identificador de la unidad de almacenamiento leída en este momento. Por ejemplo, los números aleatorios se pueden leer en secuencia.
Merece la pena señalar que los números aleatorios correspondientes adicionalmente se pueden leer de otra manera de la matriz de números aleatorios. La presente forma de realización de la presente patente no se limita a la lectura de los correspondientes números aleatorios de la matriz de números aleatorios en secuencia.
El método de generación de números aleatorios en la presente patente se puede especificar con referencia al número de segundos para un programa en el lenguaje JAVA. Los detalles se describen de la siguiente manera:
En primer lugar, se inicializa una matriz de números aleatorios y se define una unidad de almacenamiento para obtener un valor identificador y una longitud de la matriz de números aleatorios. Después de recibir la instrucción de números aleatorios, se determina si la unidad de almacenamiento actual es la última unidad de almacenamiento en la matriz de
números aleatorios. En caso negativo, es necesario generar una nueva matriz de números aleatorios; a continuación, se mezclan de forma cíclica las unidades de almacenamiento en la matriz de números aleatorios y, finalmente, los datos almacenados en la siguiente unidad de almacenamiento de la matriz de números aleatorios se seleccionan como el número aleatorio a obtener en este momento, en función del valor identificador de la unidad de almacenamiento obtenido anteriormente.
Merece la pena señalar que el método de generación de números aleatorios de la presente patente no se limita a la forma de realización en el lenguaje JAVA, y se puede implementar utilizando otro lenguaje informático.
El método de generación de números aleatorios en la presente forma de realización de la presente patente incluye lo siguiente: en primer lugar, generar la matriz de números aleatorios que incluye N unidades de almacenamiento que almacenan números aleatorios; a continuación, realizar la mezcla aleatoria en las unidades de almacenamiento en la matriz de números aleatorios; y recibir la instrucción de recuperación de números aleatorios, y leer, de una unidad de almacenamiento correspondiente en la matriz de números aleatorios, un número aleatorio almacenado en la unidad de almacenamiento. Debido a que la mezcla aleatoria se realiza en las unidades de almacenamiento de la matriz de números aleatorios, varios números aleatorios obtenidos en un tiempo unitario relativamente corto tienen una baja tasa de repetición para lograr una distribución equilibrada. Por consiguiente, el método de generación de números aleatorios en la presente patente puede lograr una aleatoriedad relativamente alta.
A continuación, se describe en detalle un proceso en el que se realiza una mezcla aleatoria en las unidades de almacenamiento en la matriz de números aleatorios de la presente patente con referencia a la FIG. 3, de modo que un experto en la técnica pueda comprender más claramente el proceso.
S310. Generar un valor aleatorio en función de un instante actual y una función aleatoria, donde cada unidad de almacenamiento tiene un valor identificador. El valor identificador se utiliza para distinguir entre los identificadores de las unidades de almacenamiento. En la presente forma de realización de la presente patente, un valor identificador de una unidad de almacenamiento en estado inicial (es decir, antes de la mezcla aleatoria) puede ser igual a un número aleatorio almacenado en la unidad de almacenamiento.
Merece la pena señalar que el valor aleatorio generado en la etapa S310 es conceptualmente diferente del número aleatorio almacenado en la unidad de almacenamiento. El valor aleatorio generado en la presente etapa se utiliza para determinar un valor identificador de una unidad de almacenamiento a intercambiar.
Cuando i es mayor que 1 y menor que N, el valor aleatorio i-ésimo se genera en función de un instante actual y el valor aleatorio (i-l)-ésimo; o cuando i es igual a 1, el valor aleatorio i-ésimo se genera en función de un instante actual, donde i es el número de veces de intercambio. En otras palabras, cuando el valor aleatorio se genera por primera vez, el valor aleatorio se genera en función del instante actual. Cuando el valor aleatorio no se genera por primera vez, el valor aleatorio i-ésimo se genera en función del instante actual y el valor aleatorio (i-l)-ésimo.
En la presente forma de realización de la presente patente, después de generar una matriz de números aleatorios, cada unidad de almacenamiento tiene un valor identificador. El valor aleatorio se genera en función de la función aleatoria, y el valor identificador de la unidad de almacenamiento a intercambiar se genera en función del valor aleatorio, para determinar la unidad de almacenamiento a intercambiar.
S320. Intercambiar un número aleatorio en una unidad de almacenamiento a intercambiar con un número aleatorio en una unidad de almacenamiento de destino en función del valor identificador y de una regla de intercambio predeterminada.
Cuando se realiza el intercambio i-ésimo, se intercambia un número aleatorio en una unidad de almacenamiento correspondiente al valor aleatorio i-ésimo con un número aleatorio en la unidad de almacenamiento (N+ 1-i)-ésima.
Por ejemplo, después de generar la matriz de números aleatorios, cada unidad de almacenamiento tiene un valor identificador, y las unidades de almacenamiento se pueden distinguir en función de los valores identificadores. Cuando i es 1, el primer valor aleatorio se genera en función del instante actual, y un valor identificador de una unidad de almacenamiento a intercambiar se genera en función del primer valor aleatorio. Un número aleatorio en una unidad de almacenamiento correspondiente al primer valor aleatorio se intercambia con un número aleatorio en la unidad de almacenamiento N-ésima de acuerdo con la regla de intercambio predeterminada, es decir, el número aleatorio en la unidad de almacenamiento correspondiente al primer valor aleatorio se almacena en la N-ésima unidad de almacenamiento, y el número aleatorio en la N-ésima unidad de almacenamiento se almacena en la unidad de almacenamiento correspondiente al primer valor aleatorio. Cuando i es 2, el segundo valor aleatorio se genera en función del instante actual y al primer valor aleatorio, y se genera un valor identificador de una unidad de almacenamiento a intercambiar en función del segundo valor aleatorio. Un número aleatorio en una unidad de almacenamiento correspondiente al segundo valor aleatorio se intercambia con un número aleatorio en la (N-l)-iésima unidad de almacenamiento en función de una regla de intercambio predeterminada, es decir, el número aleatorio en la unidad de almacenamiento correspondiente al segundo valor aleatorio se almacena en la (N-l)-iésima unidad de almacenamiento y el número aleatorio en la (N-1)-iésima unidad de almacenamiento se almacena en la unidad de
almacenamiento correspondiente al segundo valor aleatorio. Por analogía, se realizan operaciones similares hasta que se completa el intercambio de los números aleatorios almacenados en todas las unidades de almacenamiento de la matriz de números aleatorios. En la forma de realización anterior, el intercambio se realiza primero entre la unidad de almacenamiento correspondiente al valor identificador en el primer cálculo de intercambio y la N-ésima unidad de almacenamiento. Como alternativa, en otra forma de realización de la presente patente, el intercambio se puede realizar primero en la primera unidad de almacenamiento.
Por ejemplo, se inicializa una matriz de números aleatorios randArray[]. Se asigna un número natural a cada unidad de almacenamiento en la matriz de números aleatorios. Por ejemplo, randArry[0]=1, randArry[1]=2, ..., y randArry[n-1]=n. Las ubicaciones de las unidades de almacenamiento en la matriz de números aleatorios se mezclan de forma cíclica. Por ejemplo, un valor almacenado en cada unidad de almacenamiento en la matriz de números aleatorios se puede intercambiar con un valor almacenado en la i-ésima a la última unidad de almacenamiento, e i disminuye progresivamente desde n-1, por ejemplo, el intercambio se realiza entre randArry[1 ]=2 y randArry[n-1 ]=n.
Merece la pena señalar que el método de intercambio de números aleatorios en las unidades de almacenamiento en la presente forma de realización de la presente patente es sólo un tipo de la regla de intercambio predeterminada. Para ser específico, la regla de intercambio predeterminada se puede fijar en función de un requisito real, y el intercambio se realiza sobre números aleatorios en las unidades de almacenamiento utilizando diferentes métodos de intercambio.
S330. Determinar si se ha realizado el intercambio en todas las unidades de almacenamiento en una matriz de números aleatorios.
S340. En caso afirmativo, determinar que los números aleatorios almacenados en las unidades de almacenamiento están mezclados aleatoriamente. Por consiguiente, la matriz de números aleatorios está disponible para su utilización.
Se determina que se ha realizado el intercambio de todos los números aleatorios almacenados en las N unidades de almacenamiento en la matriz de números aleatorios. El valor identificador de la unidad de almacenamiento leída en este momento se obtiene en función de la instrucción de recuperación de números aleatorios, y un número aleatorio almacenado en una unidad de almacenamiento siguiente se lee en función del valor identificador de la unidad de almacenamiento leída en este momento.
Merece la pena señalar que los números aleatorios correspondientes se pueden leer de la matriz de números aleatorios de otra manera. La presente forma de realización de la presente patente no se limita a la lectura de los correspondientes números aleatorios de la matriz de números aleatorios en secuencia.
El método de generación de números aleatorios en la presente forma de realización de la presente patente incluye lo siguiente: en primer lugar, generar la matriz de números aleatorios que incluye las N unidades de almacenamiento que almacenan los números aleatorios; a continuación, realizar la mezcla aleatoria en las unidades de almacenamiento en la matriz de números aleatorios; y recibir la instrucción de recuperación de números aleatorios, y leer, de la unidad de almacenamiento correspondiente en la matriz de números aleatorios, el número aleatorio almacenado en la unidad de almacenamiento. Debido a que la mezcla aleatoria se realiza en las unidades de almacenamiento en la matriz de números aleatorios, varios números aleatorios obtenidos en un tiempo unitario relativamente corto tienen una tasa de repetición baja, para lograr una distribución equilibrada. Por consiguiente, el método de generación de números aleatorios en la presente patente puede lograr una aleatoriedad relativamente alta.
Una forma de realización de la presente descripción proporciona además un dispositivo de generación de números aleatorios que corresponde al método de generación de números aleatorios proporcionado en las formas de realización anteriores. Debido a que el dispositivo de generación de números aleatorios proporcionado en la presente forma de realización de la presente descripción tiene las mismas o similares características técnicas que el método de generación de números aleatorios proporcionado en las formas de realización anteriores, las formas de realización anteriores del método de generación de números aleatorios también se pueden aplicar al dispositivo de generación de números aleatorios proporcionado en la presente forma de realización, y no se describen en detalle en la presente forma de realización. Según se muestra en la FIG. 4, el dispositivo de generación de números aleatorios puede incluir un módulo de generación 110, un módulo de mezcla aleatoria 120 y un módulo de lectura 130.
El módulo de generación 110 se configura para generar una matriz de números aleatorios, en la que la matriz de números aleatorios incluye N unidades de almacenamiento, cada una de las unidades de almacenamiento almacena un número aleatorio, y N es un número entero positivo.
En una forma de realización de la presente patente, las N unidades de almacenamiento almacenan diferentes números aleatorios.
El módulo de mezcla aleatoria 120 se configura para realizar la mezcla aleatoria en las unidades de almacenamiento de la matriz de números aleatorios.
El módulo de lectura 130 se configura para recibir una instrucción de recuperación de números aleatorios y leer, de una unidad de almacenamiento correspondiente en la matriz de números aleatorios en función de la instrucción de recuperación de números aleatorios, un número aleatorio almacenado en la unidad de almacenamiento.
En una forma de realización de la presente patente, la FIG. 5 es un diagrama estructural esquemático que ilustra un dispositivo de generación de números aleatorios, de acuerdo con otra forma de realización de la presente patente. Es decir, sobre la base de la FIG. 4 , según se muestra en la FIG. 5, el módulo de mezcla aleatoria 120 incluye un submódulo de generación de valores identificadores 1201 y un submódulo de intercambio 1202. En una forma de realización de la presente patente, el submódulo de generación de valores identificadores 1201 se configura para generar un valor aleatorio en función de una función aleatoria, y generar un valor identificador de una unidad de almacenamiento a intercambiar en función del valor aleatorio. El submódulo de intercambio 1202 se configura para intercambiar un número aleatorio en la unidad de almacenamiento a intercambiar con un número aleatorio en una unidad de almacenamiento de destino en función del valor identificador y una regla de intercambio predeterminada.
En una forma de realización de la presente patente, cuando i es mayor que 1 y menor que N, el submódulo de generación de valores identificadores 1201 genera el valor aleatorio i-ésimo en función de un instante actual y el valor aleatorio (i-l)-ésimo, donde i es el número de veces de intercambio; o cuando i es igual a 1, el submódulo de generación de valores identificadores 1201 genera el valor aleatorio i-ésimo en función de un instante actual.
En una forma de realización de la presente patente, la regla de intercambio predeterminada es de la siguiente manera: cuando se realiza el intercambio i-ésimo, se intercambia un número aleatorio en una unidad de almacenamiento correspondiente al valor aleatorio i-ésimo con un número aleatorio en la unidad de almacenamiento (N+1-i)-ésima.
En una forma de realización de la presente patente, después de recibir la instrucción de recuperación de números aleatorios, se determina si la unidad de almacenamiento actual es la última unidad de almacenamiento en la matriz de números aleatorios. En caso negativo, se lee un número aleatorio almacenado en la siguiente unidad de almacenamiento; o en caso afirmativo, es necesario generar una nueva matriz de números aleatorios.
En una forma de realización de la presente patente, la FIG. 6 es un diagrama estructural esquemático que ilustra un dispositivo de generación de números aleatorios, de acuerdo con otra forma de realización de la presente patente. Sobre la base de la FIG. 4, el módulo de lectura 130 incluye lo siguiente: un submódulo de recuperación 1301 y un submódulo de lectura 1302.
El submódulo de recuperación 1301 se configura para obtener un valor identificador de una unidad de almacenamiento leída en este momento, en función de una instrucción de recuperación de números aleatorios. El submódulo de lectura 1302 se configura para leer, en función del valor identificador de la unidad de almacenamiento leída en este momento, un número aleatorio almacenado en una unidad de almacenamiento siguiente.
En el dispositivo de generación de números aleatorios de la presente forma de realización de la presente patente, en primer lugar, un módulo de generación genera una matriz de números aleatorios que incluye N unidades de almacenamiento que almacenan números aleatorios; a continuación, un módulo de mezcla aleatoria realiza la mezcla aleatoria en las unidades de almacenamiento en la matriz de números aleatorios; y el módulo de lectura puede recibir la instrucción de recuperación de números aleatorios y leer, de una unidad de almacenamiento correspondiente en la matriz de números aleatorios, un número aleatorio almacenado en la unidad de almacenamiento. Debido a que el módulo de mezcla aleatoria realiza la mezcla aleatoria en las unidades de almacenamiento en la matriz de números aleatorios, varios números aleatorios obtenidos en un tiempo unitario relativamente corto tienen una baja tasa de repetición, para lograr una distribución equilibrada. Por consiguiente, el dispositivo de generación de números aleatorios de la presente patente puede lograr una aleatoriedad relativamente alta.
La FIG. 7 es un diagrama de flujo que ilustra un proceso de recuperación de números aleatorios, de acuerdo con una forma de realización de la presente patente. El método de recuperación de números aleatorios mostrado en la forma de realización actual de la presente patente se describe desde una perspectiva de recuperación. Según se muestra en la FIG. 7, el método de recuperación de números aleatorios incluye las siguientes etapas:
S710. Recibir una instrucción de recuperación de números aleatorios y obtener una matriz de números aleatorios, en la que la matriz de números aleatorios incluye N unidades de almacenamiento, cada una de las unidades de almacenamiento almacena un número aleatorio, las ubicaciones de las N unidades de almacenamiento en la matriz de números aleatorios se determinan mediante la mezcla aleatoria y N es un número entero positivo.
En la presente forma de realización de la presente patente, las N unidades de almacenamiento almacenan diferentes números aleatorios.
En la presente forma de realización de la presente patente, cada una de las N unidades de almacenamiento puede almacenar de 1 a N números enteros, de modo que un número aleatorio almacenado en cada unidad de almacenamiento es diferente de un número aleatorio almacenado en otra unidad de almacenamiento.
En otra forma de realización de la presente patente, se puede configurar la longitud de la matriz de números aleatorios, y se fija de antemano según se requiera.
En la presente forma de realización de la presente patente, después de generar una matriz de números aleatorios, cada unidad de almacenamiento tiene un valor identificador. Se genera un valor aleatorio en función de una función aleatoria, y se genera un valor identificador de una unidad de almacenamiento a intercambiar en función del valor aleatorio, para determinar la unidad de almacenamiento a intercambiar.
En la presente forma de realización de la presente patente, se intercambia un número aleatorio en la unidad de almacenamiento a intercambiar con un número aleatorio en una unidad de almacenamiento objetivo en función del valor identificador y una regla de intercambio predeterminada.
Merece la pena señalar que el método de intercambio de números aleatorios en las unidades de almacenamiento en la presente forma de realización de la presente patente es sólo un tipo de la regla de intercambio predeterminada. Es decir, la regla de intercambio predeterminado se puede fijar en función de un requisito real, y el intercambio se realiza sobre números aleatorios en unidades de almacenamiento utilizando diferentes métodos de intercambio.
S720. Obtener, de una unidad de almacenamiento correspondiente en la matriz de números aleatorios en función de la instrucción de recuperación de números aleatorios, un número aleatorio almacenado en la unidad de almacenamiento.
En una forma de realización específica de la presente patente, después de recibir la instrucción de recuperación de números aleatorios, se obtiene un valor identificador de una unidad de almacenamiento leída en este momento (es decir, un valor identificador de una unidad de almacenamiento leída anteriormente) en función de la instrucción de recuperación de números aleatorios, y se lee un número aleatorio almacenado en una unidad de almacenamiento siguiente en función del valor identificador de la unidad de almacenamiento leída en este momento.
El método de recuperación de números aleatorios en la presente forma de realización de la presente patente incluye lo siguiente: en primer lugar, recibir la instrucción de recuperación de números aleatorios; a continuación, obtener la matriz de números aleatorios y determinar las ubicaciones de las N unidades de almacenamiento en la matriz de números aleatorios mediante la mezcla aleatoria; y leer, de la unidad de almacenamiento correspondiente en la matriz de números aleatorios en función de la instrucción de recuperación de números aleatorios recibida, el número aleatorio almacenado en la unidad de almacenamiento. Debido a que la mezcla aleatoria se realiza en las unidades de almacenamiento en la matriz de números aleatorios, varios números aleatorios obtenidos en un tiempo unitario relativamente corto tienen una tasa de repetición baja, para lograr una distribución equilibrada. Por consiguiente, el método de recuperación de números aleatorios de la presente patente puede lograr una aleatoriedad relativamente alta.
Una forma de realización de la presente descripción proporciona además un dispositivo de recuperación de números aleatorios que corresponde al método de recuperación de números aleatorios proporcionado en las formas de realización anteriores. El dispositivo de recuperación de números aleatorios proporcionado en la presente forma de realización de la presente descripción tiene las mismas o similares características técnicas que el método de recuperación de números aleatorios proporcionado en las formas de realización anteriores. Por consiguiente, las formas de realización del método de recuperación de números aleatorios también se pueden aplicar al dispositivo de recuperación de números aleatorios proporcionado en la presente forma de realización. En la presente forma de realización no se describen los detalles. Según se muestra en la FIG. 8, el dispositivo de recuperación de números aleatorios puede incluir: un módulo receptor 210, un módulo de recuperación de la matriz de números aleatorios 220 y un módulo de recuperación de números aleatorios 230.
El módulo receptor 210 se configura para recibir una instrucción de recuperación de números aleatorios.
El módulo de recuperación de la matriz de números aleatorios 220 se configura para obtener una matriz de números aleatorios, en la que la matriz de números aleatorios incluye N unidades de almacenamiento, cada una de las unidades de almacenamiento almacena un número aleatorio, las ubicaciones de las N unidades de almacenamiento en la matriz de números aleatorios se determinan mediante una mezcla aleatoria, y N es un número entero positivo.
En una forma de realización de la presente patente, las N unidades de almacenamiento almacenan diferentes números aleatorios.
El módulo de recuperación de números aleatorios 230 se configura para obtener, de una unidad de almacenamiento correspondiente en la matriz de números aleatorios en función de la instrucción de recuperación de números aleatorios, un número aleatorio almacenado en la unidad de almacenamiento.
En una forma de realización de la presente patente, la FIG. 9 es un diagrama estructural esquemático que ilustra un dispositivo de recuperación de números aleatorios, de acuerdo con otra forma de realización de la presente patente. Sobre la base de la FIG. 8, el módulo de recuperación de números aleatorios 230 mostrado en la FIG. 9 incluye lo
siguiente: un primer submódulo de recuperación 2301, configurado para obtener un valor identificador de una unidad de almacenamiento leída en este momento en función de la instrucción de recuperación de números aleatorios; y un segundo submódulo de recuperación 2302, configurado para obtener, en función del valor de identificación de la unidad de almacenamiento leída en este momento, un número aleatorio almacenado en una unidad de almacenamiento siguiente.
En el dispositivo de recuperación de números aleatorios de la presente forma de realización de la presente patente, en primer lugar, un módulo receptor recibe una instrucción de recuperación de números aleatorios; a continuación, un módulo de recuperación de la matriz de números aleatorios obtiene una matriz de números aleatorios, y las ubicaciones de N unidades de almacenamiento en la matriz de números aleatorios se determinan mediante mezcla aleatoria; y un módulo de recuperación de números aleatorios lee, de una unidad de almacenamiento correspondiente en la matriz de números aleatorios en función de la instrucción de recuperación de números aleatorios recibida, el número aleatorio almacenado en la unidad de almacenamiento. Debido a que la mezcla aleatoria se realiza en las unidades de almacenamiento en la matriz de números aleatorios, varios números aleatorios obtenidos en un tiempo unitario relativamente corto tienen una tasa de repetición baja, para lograr una distribución equilibrada. Por consiguiente, el dispositivo de recuperación de números aleatorios de la presente patente puede lograr una aleatoriedad relativamente alta.
En la descripción de la presente patente, se debe entender que los términos "primero" y "segundo" se utilizan meramente para describir, y no se pueden entender como una indicación o implicación de importancia relativa o una indicación implícita del número de características técnicas indicadas. Por consiguiente, una característica modificada por "primero" o "segundo" puede incluir explícita o implícitamente una o más características. En la descripción de la presente patente, "varios" hace referencia al menos a dos, por ejemplo, dos o tres, a menos que se indique de otro modo.
En la descripción de la presente memoria descriptiva, los términos de referencia tales como "una forma de realización", "algunas formas de realización", "un ejemplo", "un ejemplo específico" y "algunos ejemplos" hacen referencia a que las características específicas, estructuras, materiales o características descritas con referencia a la forma de realización o al ejemplo se incluyen en una o más formas de realización o ejemplos en la presente patente. En la presente memoria descriptiva, los términos anteriores no se describen necesariamente para la misma forma de realización o ejemplo. Además, los rasgos, estructuras, materiales o características específicas descritas se pueden combinar de manera adecuada en una o más formas de realización o ejemplos. Además, un experto en la técnica puede combinar características no contradictorias de diferentes formas de realización o ejemplos descritos en la presente memoria descriptiva.
Cualquier descripción de un proceso o método descrito en el diagrama de flujo o de otra manera se puede entender como un módulo, un segmento o una parte de código de una instrucción ejecutable que incluye una o más etapas para implementar una función o proceso lógico específico, y las formas de realización de la presente patente incluyen otra forma de realización en la que las funciones se pueden realizar en una secuencia diferente de la secuencia mostrada o descrita, por ejemplo, las funciones relacionadas se realizan de forma simultánea o en una secuencia inversa. Se debe entender por un experto en la técnica relacionada con las formas de realización de la presente patente.
Se debe entender que algunas partes de la presente patente se pueden implementar mediante hardware, software, firmware o una combinación de los mismos. En las formas de realización anteriores, se pueden implementar varias etapas o métodos utilizando software que se almacena en una memoria y se ejecuta mediante un sistema de ejecución de instrucciones o firmware apropiado. Por ejemplo, si las etapas o los métodos se implementan utilizando hardware que se puede implementar utilizando una cualquiera o una combinación de las siguientes tecnologías en la técnica: un circuito lógico discreto que incluye un circuito de puertas lógicas para implementar funciones lógicas de una señal de datos, un circuito integrado de aplicación específica que tiene un circuito de puertas lógicas combinacionales adecuado, una matriz de puertas programable (PGA), una matriz de puertas programable en campo (FPGA), etc.
Un experto en la técnica puede entender que todas o algunas de las etapas en las formas de realización del método se pueden implementar mediante un programa que instruya el hardware pertinente. El programa se puede almacenar en un medio de almacenamiento legible por computadora. Cuando el programa se ejecuta, se realiza una de o una combinación de las etapas de las formas de realización del método.
Además, las unidades funcionales en las formas de realización de la presente patente se pueden integrar en un módulo de procesamiento, o cada una de las unidades puede existir físicamente sola, o dos o más unidades se integran en un módulo. El módulo integrado se puede implementar en forma de hardware, o se puede implementar en forma de un módulo funcional de software. Cuando el módulo integrado se implementa en forma de módulo funcional de software y se vende o utiliza como producto independiente, el módulo integrado se puede almacenar en un medio de almacenamiento legible por computadora.
El medio de almacenamiento anterior puede ser una memoria de sólo lectura, un disco magnético, un disco óptico, etc. Aunque se hayan mostrado y descrito anteriormente las formas de realización de la presente patente, se puede
entender que las formas de realización anteriores son ejemplos y no se pueden entender como una restricción de la presente patente. Un experto en la técnica puede hacer cambios, modificaciones, reemplazos y modificaciones a las formas de realización anteriores dentro del alcance de la presente patente.
Claims (11)
1. Un método de generación de números aleatorios, que comprende:
generar una matriz de números aleatorios, en donde la matriz de números aleatorios comprende N unidades de almacenamiento, cada una de las unidades de almacenamiento almacena un número aleatorio, y N es un número entero positivo (S110);
realizar la mezcla aleatoria de los números aleatorios almacenados en las unidades de almacenamiento en la matriz de números aleatorios (S120), en donde cada una de las unidades de almacenamiento tiene un valor identificador, y en donde la mezcla aleatoria de los números aleatorios almacenados en las unidades de almacenamiento de la matriz de números aleatorios comprende
generar (310) un valor aleatorio en función de una función aleatoria,
determinar (310) un valor identificador de una unidad de almacenamiento a intercambiar en función del valor aleatorio, y
intercambiar (320) un número aleatorio en la unidad de almacenamiento a intercambiar con un número aleatorio en una unidad de almacenamiento objetivo en función del valor identificador y una regla de intercambio predeterminada (320); y
recibir (S130) una instrucción de recuperación de números aleatorios, y leer, de una unidad de almacenamiento correspondiente en la matriz de números aleatorios en función de la instrucción de recuperación de números aleatorios, un número aleatorio almacenado en la unidad de almacenamiento correspondiente.
2. El método de generación de números aleatorios de acuerdo con la reivindicación 1, en donde las N unidades de almacenamiento almacenan diferentes números aleatorios, y en donde un número aleatorio almacenado en cada unidad de almacenamiento es diferente de un número aleatorio almacenado en otra unidad de almacenamiento.
3. El método de generación de números aleatorios de acuerdo con la reivindicación 1, en donde la mezcla aleatoria se realiza en las N unidades de almacenamiento de la matriz de números aleatorios.
4. El método de generación de números aleatorios de acuerdo con la reivindicación 1, que comprende, además: después de recibir la instrucción de recuperación de números aleatorios, leer los números aleatorios de la matriz de números aleatorios en secuencia.
5. El método de generación de números aleatorios de acuerdo con la reivindicación 1, en donde generar el valor aleatorio en función de la función aleatoria comprende:
cuando i es mayor que 1 y menor que N, generar el valor aleatorio i-ésimo en función de un instante actual y el valor aleatorio (i-1 )-ésimo, en donde i es el número de veces de intercambio; o
cuando i es igual a 1, generar el valor i-ésimo aleatorio en función de un instante actual.
6. El método de generación de números aleatorios de acuerdo con la reivindicación 1, en donde la regla de intercambio predeterminada es de la siguiente manera:
cuando se realiza el intercambio i-ésimo, se intercambia un número aleatorio en una unidad de almacenamiento correspondiente al valor aleatorio i-ésimo con un número aleatorio en la unidad de almacenamiento (N+1-i)-ésima.
7. El método de generación de números aleatorios de acuerdo con la reivindicación 1, que comprende, además: determinar si se ha realizado un intercambio en todas las unidades de almacenamiento de la matriz de números aleatorios (S330); y
en respuesta a la determinación de que el intercambio se ha realizado en todas las unidades de almacenamiento en una matriz de números aleatorios, determinar que los números aleatorios almacenados en las unidades de almacenamiento están mezclados aleatoriamente (S340).
8. El método de generación de números aleatorios de acuerdo con la reivindicación 1, en donde leer, de la unidad de almacenamiento correspondiente en la matriz de números aleatorios en función de la instrucción de recuperación de números aleatorios comprende:
obtener un valor identificador de una unidad de almacenamiento leída en este momento en función de la instrucción de recuperación de números aleatorios, en donde la unidad de almacenamiento de lectura es una unidad de almacenamiento leída anteriormente; y
leer, en función del valor identificador de la unidad de almacenamiento leída en este momento, el número aleatorio almacenado en una unidad de almacenamiento siguiente, en donde la lectura de las unidades de almacenamiento de la matriz de números aleatorios se realiza en secuencia.
9. El método de generación de números aleatorios de acuerdo con la reivindicación 1, en donde leer, de la unidad de almacenamiento correspondiente en la matriz de números aleatorios en función de la instrucción de recuperación de números aleatorios comprende:
determinar si una unidad de almacenamiento actualmente leída es la última unidad de almacenamiento en la matriz de números aleatorios; y
en respuesta a la determinación de que la unidad de almacenamiento leída no es la última unidad de almacenamiento en la matriz de números aleatorios, leer un número aleatorio almacenado en la siguiente unidad de almacenamiento; o
en respuesta a la determinación de que la unidad de almacenamiento leída es la última unidad de almacenamiento en la matriz de números aleatorios, generar una nueva matriz de números aleatorios.
10. El método de generación de números aleatorios de acuerdo con la reivindicación 1, en donde se recibe la instrucción de recuperación de números aleatorios y se lee, de la unidad de almacenamiento correspondiente en la matriz de números aleatorios, el número aleatorio que comprende, además:
recibir (S210) la instrucción de recuperación de números aleatorios;
determinar (S220) si una unidad de almacenamiento leída en este momento es la última unidad de almacenamiento en la matriz de números aleatorios;
en respuesta a la determinación de que la unidad de almacenamiento leída en este momento es la última unidad de almacenamiento en la matriz de números aleatorios,
inicializar (S230) una matriz de números aleatorios y generar una nueva matriz de números aleatorios; y realizar (S240) la mezcla aleatoria en las unidades de almacenamiento de la matriz de números aleatorios mediante la mezcla cíclica de las ubicaciones de las unidades de almacenamiento de la matriz de números aleatorios; y seleccionar (S250), en función de un valor identificador obtenido anteriormente de la unidad de almacenamiento leída en este momento, los datos almacenados en una unidad de almacenamiento siguiente en la matriz de números aleatorios, y utilizar los datos como un número aleatorio a obtener en este momento.
11. Un dispositivo de generación de números aleatorios que almacena instrucciones ejecutables en una memoria del dispositivo, que al ser ejecutadas por el dispositivo hacen que el dispositivo ejecute el método de acuerdo con una cualquiera de las reivindicaciones 1 a 10.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610152995.2A CN107203365B (zh) | 2016-03-17 | 2016-03-17 | 随机数的生成及获取方法和装置 |
PCT/CN2017/075828 WO2017157197A1 (zh) | 2016-03-17 | 2017-03-07 | 随机数的生成及获取方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2847287T3 true ES2847287T3 (es) | 2021-08-02 |
Family
ID=59850088
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES17765739T Active ES2847287T3 (es) | 2016-03-17 | 2017-03-07 | Método y dispositivo de generación y adquisición de números aleatorios |
Country Status (8)
Country | Link |
---|---|
US (3) | US10691415B2 (es) |
EP (2) | EP3751410B1 (es) |
JP (1) | JP6793747B2 (es) |
CN (1) | CN107203365B (es) |
ES (1) | ES2847287T3 (es) |
PL (1) | PL3432137T3 (es) |
TW (1) | TWI671645B (es) |
WO (1) | WO2017157197A1 (es) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107203365B (zh) | 2016-03-17 | 2020-09-08 | 阿里巴巴集团控股有限公司 | 随机数的生成及获取方法和装置 |
CN110390855A (zh) * | 2018-04-16 | 2019-10-29 | 王金环 | 一种基于双重随机算法的课堂提问与计分系统 |
CN110647287A (zh) * | 2018-06-26 | 2020-01-03 | 北京兆易创新科技股份有限公司 | 存储器的数据存储方法、装置、电子设备和存储介质 |
CN110069242A (zh) * | 2019-04-26 | 2019-07-30 | 迅付信息科技有限公司 | 一种随机数发生器及电子券、动态支付码的生成方法 |
CN110505523B (zh) * | 2019-09-24 | 2020-06-30 | 广州优视云集科技有限公司 | 一种视频转码优先级顺序控制方法及处理终端 |
CN113138751B (zh) * | 2020-01-17 | 2023-06-09 | 北京新能源汽车股份有限公司 | 一种随机数的处理方法、装置及汽车 |
JP7446923B2 (ja) * | 2020-06-02 | 2024-03-11 | キオクシア株式会社 | 半導体装置及び半導体記憶装置 |
CN111966844B (zh) * | 2020-08-17 | 2023-09-26 | 北京像素软件科技股份有限公司 | 一种对象的加载方法、装置及存储介质 |
CN113157249B (zh) * | 2021-04-22 | 2023-09-08 | 北京奇艺世纪科技有限公司 | 标识号生成方法、装置、电子设备及存储介质 |
CN113485676A (zh) * | 2021-07-08 | 2021-10-08 | 上海通联金融服务有限公司 | 随机生成信用卡号的方法及系统 |
US20230205531A1 (en) * | 2021-12-23 | 2023-06-29 | Intel Corporation | Random data usage |
CN117827148B (zh) * | 2023-12-30 | 2024-09-17 | 北京海泰方圆科技股份有限公司 | 一种随机数生成方法、装置及电子设备 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1153173A (ja) | 1997-08-07 | 1999-02-26 | Nec Corp | 擬似乱数発生方法及び装置 |
US6760739B2 (en) * | 2001-03-01 | 2004-07-06 | Corrent Corporation | Pipelined digital randomizer based on permutation and substitution using data sampling with variable frequency and non-coherent clock sources |
US7197142B2 (en) * | 2001-08-24 | 2007-03-27 | Alten Alexander I | System and methods for a vernam stream cipher |
FR2829643A1 (fr) * | 2001-09-12 | 2003-03-14 | Everbee Wireless Ltd | Procede pour generer des nombres aleatoires |
US7236996B2 (en) * | 2003-12-05 | 2007-06-26 | John McCann | Methods for generating random numbers |
JP2005228169A (ja) | 2004-02-16 | 2005-08-25 | Bittech Inc | 乱数生成装置 |
JP2006155168A (ja) * | 2004-11-29 | 2006-06-15 | Hitachi Ltd | 乱数生成方法及びシステム |
CN101105742A (zh) * | 2006-07-10 | 2008-01-16 | 致伸科技股份有限公司 | 随机数产生器及随机数产生方法 |
WO2008053936A1 (fr) * | 2006-10-31 | 2008-05-08 | Kiyoto Yui | Dispositif de génération de nombres pseudo-aléatoires, programme de génération de nombres pseudo-aléatoires, et support contenant un programme de génération de nombres pseudo-aléatoires |
JP4308293B2 (ja) * | 2007-11-20 | 2009-08-05 | 際国 董 | 乱数生成装置及び方法 |
US20100005133A1 (en) * | 2008-07-04 | 2010-01-07 | Samsung Electronics Co. Ltd. | Apparatus and method for generating permutation sequence in a broadband wireless communication system |
CN102541508A (zh) * | 2010-12-29 | 2012-07-04 | 鸿富锦精密工业(深圳)有限公司 | 真随机数产生系统及方法 |
JP5813380B2 (ja) * | 2011-06-03 | 2015-11-17 | 株式会社東芝 | 半導体記憶装置 |
US8843539B2 (en) * | 2012-05-08 | 2014-09-23 | Caringo, Inc. | Generation of seed value for pseudo random number generator |
CN103034471B (zh) * | 2012-12-10 | 2016-06-01 | 杜海洋 | 一种随机数的生成方法及系统 |
CN103645882A (zh) * | 2013-12-09 | 2014-03-19 | 中颖电子股份有限公司 | 基于单片机的批量乱序随机数的生成方法 |
CN104506319B (zh) * | 2014-12-15 | 2017-11-28 | 飞天诚信科技股份有限公司 | 一种多种子动态令牌的工作方法 |
CN107203365B (zh) | 2016-03-17 | 2020-09-08 | 阿里巴巴集团控股有限公司 | 随机数的生成及获取方法和装置 |
JP7299740B2 (ja) | 2019-04-08 | 2023-06-28 | キヤノン株式会社 | シート撮像装置、シート判別装置および画像形成装置 |
-
2016
- 2016-03-17 CN CN201610152995.2A patent/CN107203365B/zh active Active
-
2017
- 2017-01-19 TW TW106101909A patent/TWI671645B/zh active
- 2017-03-07 EP EP20189059.7A patent/EP3751410B1/en active Active
- 2017-03-07 JP JP2018549163A patent/JP6793747B2/ja active Active
- 2017-03-07 WO PCT/CN2017/075828 patent/WO2017157197A1/zh active Application Filing
- 2017-03-07 EP EP17765739.2A patent/EP3432137B1/en active Active
- 2017-03-07 PL PL17765739T patent/PL3432137T3/pl unknown
- 2017-03-07 ES ES17765739T patent/ES2847287T3/es active Active
-
2018
- 2018-09-14 US US16/131,352 patent/US10691415B2/en active Active
-
2020
- 2020-06-19 US US16/906,840 patent/US10929103B2/en active Active
-
2021
- 2021-02-22 US US17/181,978 patent/US11182129B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN107203365A (zh) | 2017-09-26 |
US11182129B2 (en) | 2021-11-23 |
PL3432137T3 (pl) | 2021-08-02 |
CN107203365B (zh) | 2020-09-08 |
EP3432137B1 (en) | 2020-10-14 |
EP3751410B1 (en) | 2022-01-26 |
US10691415B2 (en) | 2020-06-23 |
US10929103B2 (en) | 2021-02-23 |
EP3432137A1 (en) | 2019-01-23 |
US20190012147A1 (en) | 2019-01-10 |
TWI671645B (zh) | 2019-09-11 |
JP6793747B2 (ja) | 2020-12-02 |
US20210216285A1 (en) | 2021-07-15 |
JP2019512805A (ja) | 2019-05-16 |
TW201734836A (zh) | 2017-10-01 |
US20200319854A1 (en) | 2020-10-08 |
EP3751410A1 (en) | 2020-12-16 |
WO2017157197A1 (zh) | 2017-09-21 |
EP3432137A4 (en) | 2019-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2847287T3 (es) | Método y dispositivo de generación y adquisición de números aleatorios | |
US10353638B2 (en) | Security method and apparatus to prevent replay of external memory data to integrated circuits having only one-time programmable non-volatile memory | |
ES2664413T3 (es) | Aparato y métodos para realizar informes de mediciones de integridad informática de confianza | |
US7774617B2 (en) | Masking a boot sequence by providing a dummy processor | |
US9048834B2 (en) | Grouping of physically unclonable functions | |
US20070288738A1 (en) | System and method for selecting a random processor to boot on a multiprocessor system | |
US20080229092A1 (en) | Secure Boot Across a Plurality of Processors | |
US20070300053A1 (en) | System and method for masking a hardware boot sequence | |
JP2018509833A (ja) | サイドチャネル解析抵抗アーキテクチャ | |
US10217498B2 (en) | Techniques for preventing tampering with PROM settings | |
JP7393862B2 (ja) | リングオシレータベースのエントロピー源への位相トラッキングアタックに対する対応策 | |
US20150331810A1 (en) | Randomized memory access | |
JP2019512805A5 (es) | ||
US20200228319A1 (en) | Dynamic transform in blockchain header validation | |
Azriel et al. | Towards a memristive hardware secure hash function (memhash) | |
ES2807214T3 (es) | Procedimiento de protección de circuitos electrónicos contra interceptación por análisis de potencia y circuito electrónico que usa el mismo | |
ES2659289T3 (es) | Método y terminal de autenticación de usuario | |
JP6450536B2 (ja) | 単一サイクルの調停 | |
EP2950201A1 (en) | Generation of random numbers from an unitialised memory unit | |
US20170193025A1 (en) | Rotor movement control and rotor wiring for rotor-based encryption machines and electronic equivalents | |
JP2015018558A5 (es) | ||
CN107111730A (zh) | 用于数据存储的完整性保护 | |
TW202234413A (zh) | 基於微調和冗餘資訊產生裝置簽章的方法、裝置及系統 | |
CN111279307B (zh) | 随机数生成器 | |
ES2843098T3 (es) | Carga segura de datos secretos de registros de hardware no protegidos |