Saltar al contenido

¿Es posible generar números verdaderamente aleatorios usando una computadora?

Luego de de esta prolongada selección de información pudimos resolver esta escollo que presentan ciertos lectores. Te regalamos la solución y nuestro deseo es resultarte de gran apoyo.

Solución:

Esta es una buena pregunta, pero para profundizar en ella tenemos que mirar los supuestos subyacentes.

Primero, para el propósito que nos ocupa, realmente no tiene sentido decir que un número en sí es aleatorio. Existe la sensación de que un número particular es aleatorio de la complejidad de Kolmogorov, pero eso no es lo que se pretende aquí. En cambio, lo que nos interesa podría llamarse un proceso aleatorio – un proceso que genera una secuencia de números para que la secuencia satisfaga alguna distribución de probabilidad particular. Queremos saber si una computadora puede generar una secuencia de números de manera aleatoria.

La siguiente pregunta es qué queremos decir con “usar un programa de computadora”. Si consideramos que un “programa de computadora” es un algoritmo completamente determinista, entonces no podrá generar números de una manera verdaderamente aleatoria. No existe ningún programa de computadora que pueda ser simulado completamente con papel y lápiz, de manera determinista, que genere números de manera aleatoria. ¡El siguiente número de la secuencia es siempre completamente predecible!

Sin embargo, si estamos dispuestos a agregar hardware adicional, entonces podría ser posible. Ésta es una noción más amplia de “programa”. Por ejemplo, las máquinas que se utilizan para sacar los números ganadores de una lotería están diseñadas, esencialmente, para intentar generar números de forma aleatoria. No hay ninguna razón por la que uno de estos no pueda conectarse a una computadora y automatizarse. Entonces, si aceptamos que la lotería puede generar números al azar, también puede hacerlo una computadora.

También hay métodos más rápidos. Algunos sistemas operativos intentan recopilar información aleatoria del entorno, almacenar esta información y luego devolverla cuando se les pide que generen un número aleatorio. Este no es un proceso determinista, pero teóricamente genera números de manera aleatoria. Por ejemplo, la computadora puede medir el ruido blanco, o puede medir el tiempo de varios eventos como pulsaciones de teclas y llegadas de paquetes, y combinarlos de una manera teóricamente válida para generar números al azar.

El tema final es filosófico. Algunos podrían creer que todo el universo es determinista y, por lo tanto, nada es siempre aleatorio. Sin embargo, esa objeción está demasiado lejos para la presente conversación. Si queremos preguntarnos si las computadoras pueden generar números de manera aleatoria, normalmente damos por hecho que algo podría generar números de forma aleatoria, de modo que podamos centrarnos en si las computadoras pueden hacerlo.

Después de buscar en Internet, he decidido responder a mi propia pregunta aquí. Es posible generar números verdaderamente aleatorios. Los números aleatorios se generan a partir de procesos aleatorios impredecibles como ruidos térmicos o atmosféricos, radiaciones cósmicas, etc. Necesitamos hardware o sensores especiales que puedan medir dichos procesos y podría haber un programa que pueda producir un número a partir de la entrada de eventos aleatorios. Como este método utiliza eventos aleatorios en lugar de un algoritmo predefinido, puede generar un número verdaderamente aleatorio.

Puede encontrar una de estas soluciones en línea en https://www.random.org/. Random.org utiliza ruido atmosférico para crear aleatoriedad.

Finalmente, aquí hay una broma:

Número aleatorio

Sí desde un punto de vista teórico, no desde un punto de vista práctico.

Es posible con un programa acceder al módulo wifi en computadoras estándar. La idea detrás de esto se describe aquí: Se registran los cambios aleatorios en el nivel de ruido. Este ruido generalmente se acepta como aleatorio (solo encienda su radio AM a una frecuencia desocupada durante el día y escuche el ruido que produce la atmósfera. Lo mismo sucede en las frecuencias de ~ 2 GHz en las que operan nuestros módulos wifi). Creo que siguen algún tipo de proceso de Poisson, por lo que el tiempo entre cambios de ruido sigue una distribución exponencial.

Quizás también se podrían usar objetos giratorios como el ventilador de enfriamiento o el disco duro como una especie de rueda de la fortuna, ya que su velocidad de rotación puede ser controlada y registrada por software.

Sin embargo, estos números aleatorios tienden a tener un gran inconveniente: No conoces su true distribución. Por lo tanto, son inútiles para la mayoría de las aplicaciones, excepto si toma el número aleatorio para generar un generador de números pseudoaleatorios ordinario (pRNG). Entonces, los números pseudoaleatorios resultantes son un poco menos “pseudo” pero aún tienen una distribución (frecuencia) conocida.

Las fuentes de aleatoriedad útil con una distribución mejor entendida generalmente necesitan dispositivos que ya no forman parte de las computadoras habituales. Dichos dispositivos deben cumplir con especificaciones estrictas para producir las probabilidades deseadas. Las computadoras habituales no lo hacen: no sabe cuánto está desgastado el cojinete de su ventilador de enfriamiento, qué ruido aleatorio recibe su wifi, etc.

Otro inconveniente: la generación de números aleatorios reales es mucho más lenta que los pRNG, incluso si tiene un dispositivo especializado que observa cierta desintegración radiactiva para producir números aleatorios. Por lo tanto, puede terminar produciendo nuevamente solo la semilla para el pRNG al azar.

Calificaciones y reseñas

Si crees que te ha resultado de utilidad este artículo, sería de mucha ayuda si lo compartieras con más juniors de este modo nos ayudas a dar difusión a este contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *