Los generadores de números aleatorios pueden ser de los siguientes dos tipos:
- Generador de números pseudoaleatorios (PRNG)
- Generador de números aleatorios verdaderos (TRNG)
El generador de números pseudoaleatorios o llamado Generador determinista de números aleatorios (DRNG) son algoritmos computacionales que producen una secuencia de números basada en un estado inicial arbitrario llamado ESTADO DE LA SEMILLA , es decir, si [math] {x} _ {0} [/ math ] se elige de alguna manera al azar, luego [matemáticas] {x} _ {n} = f ({x} _ {m}) [/ matemáticas]. Por lo tanto, un generador de números pseudoaleatorios es determinista y los números sucesivos de la secuencia se pueden determinar con conocimiento de las salidas anteriores si hay suficiente potencia computacional. Por lo tanto, ningún algoritmo computacional o funciones como rand () pueden darle una secuencia que sea verdaderamente aleatoria. Debido a la naturaleza determinista de los números pseudoaleatorios, plantea serias amenazas a muchos problemas relacionados con la privacidad y la integridad en los sistemas de comunicación y encriptaciones.
Por otro lado, los verdaderos generadores de números aleatorios dan una secuencia de números verdaderamente aleatorios. Tales secuencias nunca pueden derivarse de algoritmos computacionales. Utilizan la aleatoriedad inherente y el caos en varios fenómenos físicos y cuánticos para producir la secuencia de números aleatorios. Entonces, para obtener una secuencia de números aleatorios verdaderos, uno necesita explotar la aleatoriedad física del universo. Nunca se puede lograr con ningún algoritmo. Sin embargo, para fines prácticos, son suficientes los algoritmos de números pseudoaleatorios muy fuertes con una cantidad muy baja de correlación entre los miembros de la secuencia. Pero eso simplemente no los hace verdaderamente al azar.
- Informática teórica: ¿son todos los lenguajes P decidibles? ¿Son todos los idiomas NP decidibles?
- ¿Necesito matemáticas para programar?
- ¿Qué matemática puede o no puede hacer una computadora?
- Un juego de 64 discos de Tower of Hanoi es jugado por un programa que realiza movimientos a una velocidad creciente. Comienza a 1000 movimientos por segundo. ¿Cuánto tiempo tomará?
- ¿Cuál es el significado del teorema de Rice en la teoría de la complejidad computacional?
Según Jon von Neumann, quien fue la primera persona en señalar la incapacidad de los algoritmos computacionales para generar números verdaderamente aleatorios:
“Cualquier persona que intente producir números aleatorios por medios puramente aritméticos está, por supuesto, en un estado de pecado”.