¿Por qué es tan difícil generar números realmente aleatorios?

Supongo que te estás preguntando por qué los humanos tienen dificultades para encontrar una lista de números aleatorios. He leído en diferentes lugares que pidieron hacer tales listas, como una larga lista de dígitos aleatorios, no lo hacemos bien. Aquí hay uno que acabo de encontrar con google: http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3632045/.

Por ejemplo, tendemos a no repetir dígitos cuando se nos pide que hagamos una secuencia aleatoria larga construida a partir de los 10 dígitos. Por supuesto, deberíamos esperar repeticiones aproximadamente una décima parte del tiempo, pero alguien que no lo haya pensado puede no incluir ninguna repetición.

Puedes ponerte a prueba para ver qué tan bueno eres para generar secuencias aleatorias de 0 y 1. Vea el artículo de David Austin Números aleatorios: nada queda al azar, y pruébelo en la prueba de secuencia aleatoria Prueba de secuencia aleatoria.
No me fue tan bien en un par de pruebas con mi secuencia.

La pregunta es, ¿por qué los humanos no son muy buenos en la generación de números aleatorios? Somos bastante buenos para ver y escuchar patrones. Quizás no podamos evitar generarlos. Además, nuestras neuronas están cableadas (al menos a corto plazo), por lo que nuestros cerebros son bastante deterministas a pequeña escala. La red neuronal total es muy compleja, por lo que no vemos ese determinismo en su conjunto, pero en una tarea tan simple como generar rápidamente una secuencia de 0 y 1, ese determinismo puede ser un factor más importante.

Creo que hay 3 tipos de aleatoriedad (o imprevisibilidad)

  1. Pseudoaleatoriedad . Este tipo de imprevisibilidad es generado por un algoritmo. Es impredecible solo si no conoce el algoritmo. Por ejemplo, los dígitos 9,7,9,3,2,3,8,4,6,2,6,4,3,3,8,3,2 parecen impredecibles, pero tan pronto como sepas son los dígitos de pi (a partir del decimosegundo decimal) es fácil determinar qué vendrá después)
  2. Aleatoriedad caótica . Esto es lanzar dados o lanzar una moneda o muestrear el volumen de ruido de fondo para generar secuencias de números impredecibles. Cambios muy pequeños en las condiciones al comienzo de la generación darán como resultado un resultado impredecible. En teoría, si supieras todo sobre el medio ambiente al principio, podrías en teoría averiguar qué número se generaría. No le ayudaría a determinar el próximo número, tendría que rehacer el cálculo cada vez. En la práctica, es imposible saber todo sobre el medio ambiente al principio, a menos que el medio ambiente esté estrictamente controlado.
  3. Aleatoriedad universal . Si crees en un universo determinista, entonces crees que este tipo de aleatoriedad no existe, de lo contrario hay una aleatoriedad en el universo que crea resultados que son impredecibles incluso para el universo mismo. Un ejemplo de esto es la desintegración atómica de los átomos radiactivos.

Puede haber otros tipos de aleatoriedad y los tipos que he descrito pueden no ser nombrados correctamente o descritos perfectamente. No soy un experto en este tema. Estos son sólo mis pensamientos.

Las computadoras solo realizan operaciones deterministas sobre la información disponible para ellos, y la información disponible para ellos debería ser aleatoria, para que puedan generar números realmente aleatorios. Si la información disponible para ellos fuera aleatoria, no tendrían que generar números realmente aleatorios.

He estado discutiendo una pregunta durante muchos años: ¿qué es realmente aleatorio?

No es difícil generar números realmente aleatorios. Quizás ese sea todo el problema, el malentendido. Cuando pensamos o calculamos el siguiente número aleatorio, ¡eso es precisamente lo que lo hace no aleatorio! Cuando las personas establecen una regla como “no puede tener muchos del mismo número en una fila”, no están hablando de azar. NO hay número o secuencia que no pueda ser aleatorio. Aleatorio en realidad significa que NADA determinó el número o la secuencia. Eso significa que nadie puede mirar una secuencia abstracta y decir que esto no es aleatorio.

El problema es que simplemente no puede generarlo ni calcularlo y llamarlo aleatorio. Incluso si reúne partículas de desintegración nuclear para generar números “aleatorios”, eso todavía no es aleatorio porque depende de esas partículas que estaban allí, listas para hacer lo siguiente cuando lo hicieran. Si crees que los eventos cuánticos son verdaderamente aleatorios, eso no es mejor que una persona menos informada que afirma que el número pseudoaleatorio de un generador polinomial fue realmente aleatorio. Se llama pseudoaleatorio porque solo se calcula de forma críptica. La gente que no predice el próximo número no lo hace verdaderamente aleatorio.

Entonces, ¿se te ocurre uno con rapidez? El cerebro no puede encontrar un número verdaderamente aleatorio, porque si lo piensas, siempre lo has construido desde tu estado mental. Eso tampoco es aleatorio.

Generar números aleatorios es fácil. Esté atento a la desintegración radiactiva (o al movimiento browniano en una taza de té caliente, para la audiencia adecuada) o tire los dados, y los resultados son aleatorios.

El problema es generar números aleatorios procesalmente , y la premisa es precisamente el problema. No importa cuán aleatorio haga que se vean mis números, si conoce el procedimiento que usé para generarlos (una implementación del Registro de cambio de comentarios generalizado de dos toques , por ejemplo) y la (s) semilla (s) inicial (es) que usé, puede pronosticar rápidamente el siguiente números el 100% del tiempo, lo que los hace parecer completamente no aleatorios … lo que son.

Es decir, no podemos generar de manera procesal números aleatorios realmente buenos, porque la misma herramienta utilizada para generarlos puede usarse para predecirlos con absoluta confianza.

Para un videojuego, donde un personaje podría tambalearse por la pantalla, la previsibilidad no es gran cosa, y podría ser un beneficio en algunos casos. Pero para un campo como la criptografía, confiar en generar claves que nadie debería adivinar, usar una herramienta inherentemente adivinable tiene sus defectos.

En cuanto al uso de códigos generadores de números aleatorios en ciertos lenguajes de programación, almacenan el resultado anterior y generan otro número basado en el resultado anterior. Por lo tanto, los números “aleatorios” pueden ser de naturaleza periódica.

Sin embargo, para la mayoría de los propósitos prácticos (por ejemplo, en las simulaciones monte-carlo), estos números pseudoaleatorios sirven para el propósito.

¿Hay algún número aleatorio REAL? ¿O son todos pseudo-randoms? Permítanme explicar: lanzamos un dado poniendo x newton de fuerza con ángulo y hacia él. Lo disparamos desde la altura h, y la velocidad del viento es z, que proviene del ángulo i. Estamos a una altura de n del mar. Tenemos 4 por ejemplo.
Si repetimos el procedimiento exacto, ¿qué obtendremos? Así es, 4 de nuevo!
Todos los generadores de números aleatorios que conocemos (como los dados) son realmente algoritmos muy complicados. No conocemos todas las fórmulas, todos los parámetros participantes, y no podemos medir con precisión todos los parámetros. Por lo tanto, confiamos en la complejidad de estos algoritmos y en el hecho de que casi nadie puede encontrar el algoritmo exacto y los parámetros participantes para adivinar el número generado.
Cuando tratamos con la naturaleza que no conocemos en su mayor parte, simplemente podemos usar las formas naturales para generar números aleatorios (o pseudoaleatorios). Pero cuando usamos computadoras que construimos y sabemos todo sobre ellas, necesitamos usar métodos complejos y usar entradas inusuales para generarlas.
Lo más importante sobre un generador de números aleatorios es la complejidad de adivinar el número generado de antemano. Si alguien puede adivinar los dados, muchos juegos de dados se arruinan. Y si alguien puede adivinar números pseudoaleatorios generados por computadora, entonces muchas de las computadoras y la seguridad de Internet (¡y, por supuesto, muchos juegos de computadora!) Se arruinan.