Hace poco vi esta pregunta en matemáticas. Me hizo pensar. ¿Podría Pi utilizarse como un generador de números aleatorios en bruto? Quiero decir que los resultados son bien conocidos (¿hasta cuándo se ha calculado pi ahora?) Pero, Pi parece ser bastante aleatorio cuando se toma 1 dígito a la vez.
¿Tiene esto algún sentido?
Respuestas:
Excavando desde http://www.befria.nu/elias/pi/binpi.html para obtener el valor binario de pi (para que fuera más fácil convertirlo en bytes en lugar de intentar usar dígitos decimales) y luego ejecutarlo a través de ent Obtengo lo siguiente para un análisis de la distribución aleatoria de los bytes:
Entonces, sí, usar pi para datos aleatorios le daría datos bastante aleatorios ... al darse cuenta de que son datos aleatorios bien conocidos.
De un comentario arriba ...
Entonces, calculé la raíz cuadrada de 2 en binario para resolver el mismo conjunto de problemas. Usando la iteración de Wolfram, escribí un simple script en perl
Ejecutar esto durante los primeros 10 A095804 coincide, así que estaba seguro de que tenía la secuencia. El valor v n como cuando se escribe en binario con el punto binario colocado después del primer dígito da una aproximación de la raíz cuadrada de 2.
El uso de ent contra estos datos binarios produce:
fuente
Bueno, entre otras propiedades de un generador de números aleatorios, es probable que desee que sea un número normal . Y varias respuestas en la pregunta de matemáticas. SE que inspiraron su pregunta señalan que actualmente se cree que pi es normal, pero no se ha demostrado.
fuente
Dicho generador sería un generador de pseudo números, es decir, dada la misma semilla, el resultado siempre sería el mismo. Dicho esto, en la mayoría de los marcos, cuando usa el generador de números aleatorios estándar, existe el mismo problema de ser pseudoaleatorio.
La distribución de los dígitos parece ser bastante similar a la de los generadores de números aleatorios estándar¹, por lo que los dígitos de π pueden usarse para escenarios de generación de números aleatorios ordinarios.
El problema es que el algoritmo probablemente será muy lento, en comparación con los generadores de números aleatorios comunes, por lo que no es muy útil en la práctica.
¹ Creo que es verdad, pero no tengo ninguna prueba. Sería interesante (y no complicar) hacer una comparación basada en una gran cantidad de números.
fuente
La aleatoriedad de los dígitos de pi (o para cualquier otra secuencia) se puede probar mediante las llamadas 'pruebas de batería'. Una prueba de batería popular es la Prueba de batería dura de George Marsaglia . También hay una publicación especial NIST 800-22 que describe varias de estas pruebas y los resultados de aplicar estas pruebas a una serie de constantes físicas, que incluyen - lo y he aquí - pi por más de un millón de bits. El resultado de pi se da en el Apéndice B del informe y se ve así:
¿Es pi un buen generador de secuencia aleatoria? Mire los resultados anteriores (o busque los significados de la variable de la columna izquierda, si no tiene idea de lo que significan), y verifique si satisface su necesidad.
fuente