Generador de números pseudoaleatorios para niños
Un generador pseudoaleatorio de números (GPAN) es un algoritmo que produce una serie de números que se parecen mucho a un conjunto de números elegidos al azar. Aunque estos números parecen aleatorios, en realidad están completamente determinados por un pequeño grupo de valores iniciales, llamados el estado del GPAN.
Existen máquinas que pueden generar números más verdaderamente aleatorios, pero los números pseudoaleatorios son muy importantes en la práctica. Se usan mucho en simulaciones, por ejemplo, para estudiar sistemas físicos usando el método de Montecarlo. También son clave en la criptografía, que es el arte de escribir o resolver códigos secretos.
La mayoría de los algoritmos de GPAN crean series de números que se distribuyen de manera uniforme, lo que significa que todos los números tienen la misma probabilidad de aparecer. Algunos tipos comunes de estos algoritmos son los generadores lineales congruentes y los Mersenne twister.
Se necesita un análisis matemático cuidadoso para estar seguros de que un GPAN genera números lo suficientemente "aleatorios" para el propósito que se necesitan. Como dijo una vez Robert R. Coveyou, un experto en el tema, "La generación de números aleatorios es demasiado importante como para ser dejada al azar".
Contenido
¿Qué problemas pueden tener los generadores pseudoaleatorios?
En la práctica, los números que producen muchos GPAN pueden tener "defectos" matemáticos. Esto hace que no pasen algunas pruebas que buscan ver si los números son realmente aleatorios. Algunos de estos problemas incluyen:
- Períodos cortos: A veces, la secuencia de números se repite antes de lo esperado.
- Falta de uniformidad: Los números no se distribuyen de manera pareja; algunos aparecen más que otros.
- Valores relacionados: Los números que aparecen uno después del otro pueden estar conectados de alguna forma.
- Mala distribución: La forma en que los números se organizan en varias dimensiones no es la esperada para números aleatorios.
- Distancias irregulares: Las distancias entre la aparición de ciertos números no son como las de una secuencia aleatoria.
- Secuencias menos aleatorias: Algunas partes de la secuencia pueden parecer menos aleatorias que otras.
Estos defectos pueden ser difíciles de notar o muy obvios. Por ejemplo, el algoritmo RANDU, usado por décadas en computadoras grandes, tenía problemas serios. Esto hizo que muchas investigaciones de esa época fueran menos confiables.
Generadores de Números Pseudoaleatorios Importantes
A lo largo de la historia, se han desarrollado muchos generadores pseudoaleatorios. Algunos son importantes por ser los primeros, y otros por ser muy innovadores. Aquí te presentamos algunos ejemplos destacados:
Primeros Desarrollos y Modelos Influyentes
- Método del medio del cuadrado (1946): Creado por John von Neumann, fue uno de los primeros algoritmos, aunque no era de muy alta calidad.
- Generador de Lehmer (1951): También conocido como método Congruente Lineal Multiplicativo, fue muy influyente.
- Generador lineal congruencial (1958): Derivado del método de Lehmer, es uno de los más estudiados.
- Linear-feedback Shift Register (1965): Su diseño influyó en muchos otros generadores posteriores.
Generadores Modernos y Seguros
- Blum Blum Shub (1986): Es considerado uno de los generadores más seguros para la criptografía, gracias a su base en la teoría de números.
- Mersenne twister (1998): Es muy conocido y se usa en lenguajes de programación como Python y R, y en muchos videojuegos.
- Fortuna (2003): Otro algoritmo considerado muy seguro para la criptografía, usado en sistemas y productos de Apple.
- Xorshift (2003): Es un tipo de generador muy rápido.
Estos son solo algunos ejemplos de los muchos generadores que se han creado para producir números que parecen aleatorios, pero que en realidad son el resultado de cálculos precisos.
Véase también
En inglés: Pseudorandom number generator Facts for Kids