¿Podemos generar números aleatorios usando números irracionales como π y e?


21

Los números irracionales como , y tienen una secuencia única y no repetitiva después del punto decimal. Si extraemos el dígitos -ésimo de dichos números (donde es el número de veces que el método se llama) y hacer un número con los dígitos tal como es, no hemos de conseguir un generador de números aleatorios perfecto? Por ejemplo, si estamos usando , y , el primer número es 123, el segundo es 471, el siguiente es 184 y así sucesivamente.πe2nn2eπ


30
Tienes una extraña definición de "aleatorio" en tu cabeza. "Aleatorio" significa "impredecible". ¿Cómo es tu secuencia impredecible? ¿Qué definición de "aleatorio" tienes en mente? Quizás lo que llamas "aleatorio" tiene otro nombre.
Eric Lippert

77
Tenga en cuenta que el algoritmo de espita se puede utilizar para generar cualquier dígito hexadecimal en pi, sin tener que generar dígitos anteriores.
rcgldr

10
@EricLippert ¿No son predecibles todos los generadores de números pseudoaleatorios?
Federico Poloni

77
El término ha aparecido varias veces: este es un "número aleatorio de psuedo", no un "número aleatorio". Es un número generado algorítmicamente (por lo tanto, no aleatorio), pero que tiene muchas propiedades deseables que tienen los números aleatorios. Otro algoritmo es el algoritmo de "agenda telefónica de Nueva York", donde se baja alfabéticamente la lista de números de teléfono y se toma el último dígito de cada uno de ellos. ¡No al azar, sino pseudoaleatorio con algunos comportamientos estadísticos bastante agradables!
Cort Ammon - Restablece a Mónica el

55
"Pseudo" significa "similar pero no". Entonces, los números pseudoaleatorios son similares, pero no números aleatorios Así que no estoy siguiendo tu línea de pensamiento aquí. Ahora, los PRNG de fuerza criptográfica tienen la propiedad deseable de que si el atacante desconoce el estado interno, ninguna prueba estadística que poseamos puede distinguir un PRNG criptográfico de un RNG verdadero, y eso incluye su falta de previsibilidad. Pero los dígitos de pi no tienen esa propiedad; Son altamente predecibles.
Eric Lippert

Respuestas:


17

La desventaja más obvia es la complejidad innecesaria de los algoritmos PRNG basados ​​en números irracionales. Requieren muchos más cálculos por dígito generado que, por ejemplo, un LCG; y esta complejidad generalmente crece a medida que avanza en la secuencia. Calcular 256 bits de π en el bit dos billonésimo tomó 23 días en 1000 computadoras (en 2010), una complejidad bastante prohibitiva para un RNG.


47

Para cualquier definición razonable de perfecto, el mecanismo que describe no es un generador de números aleatorios perfecto.

  • No repetir no es suficiente. El número decimal no se repite, pero es un terrible generador de dígitos aleatorios, ya que la respuesta es "siempre" cero, ocasionalmente uno, y nunca otra cosa.0.101001000100001

  • En realidad, no sabemos si cada dígito ocurre con la misma frecuencia en la expansión decimal de πe (aunque sospechamos que sí).

  • En muchas situaciones, exigimos que los números aleatorios sean impredecibles (de hecho, si le pregunta a una persona aleatoria qué significa "aleatorio", probablemente diría algo sobre la imprevisibilidad). Los dígitos de constantes bien conocidas son totalmente predecibles.

  • Por lo general, queremos generar números aleatorios razonablemente rápido, pero generar dígitos sucesivos de constantes matemáticas tiende a ser bastante costoso.

  • Sin embargo, es cierto que los dígitos de πe parecen estadísticamente aleatorios, en el sentido de que cada posible secuencia de dígitos parece ocurrir tan a menudo como debería. Entonces, por ejemplo, cada dígito ocurre muy cerca de una vez en diez; cada secuencia de dos dígitos muy cerca de uno en cien, y así sucesivamente.


11
Para el tercer punto, debe haber algún tipo de entrada 'secreta' a su proceso de generación para que sea impredecible (el proceso de generación en sí mismo debe ser determinista si no queremos confiar en otro generador de números aleatorios). Esta entrada adicional a menudo se denomina semilla .
Lagarto discreto

66
@Discretelizard Esto es cierto, pero no hay mucho margen para sembrar más allá de "devolver dígitos sucesivos comenzando con la posición ". En el momento en que usted ha visto 2 log s dígitos, esa secuencia se produce sólo un par de veces en el primer s 2 dígitos de π , por lo que es único dentro de la primera s dígitos con alta probabilidad y usted sabe la semilla. s2logss2πs
David Richerby

2
@Barmar: En ese punto, debe preguntarse si esta técnica es realmente más eficaz (y más eficiente en el espacio) de lo que sería un PRNG "estándar".
Kevin

2
Los dígitos de pi o e son completamente impredecibles, especialmente porque el espectador / destinatario / interruptor de código, etc., no tiene idea de qué tan avanzada está la secuencia en la que ya se encuentra. Si comienza en el número de dígito 237423 de la secuencia, tomará tanto tiempo descubrirlo como ser aleatorio.
Ingeniero invertido

10
smy birthday

29

Es criptográficamente inútil porque un adversario puede predecir cada dígito. También consume mucho tiempo.


11
OP nunca menciona criptografía ...
AnoE

13
@AnoE ¿Y? Que este proceso sería criptográficamente inútil sigue siendo relevante porque el cifrado es un ávido usuario de aleatoriedad. Si abre los dispositivos /dev/randomy /dev/urandomalguien invariablemente mostrará la criptografía.
Greg Schmit - Restablece a Mónica el

66
Te sorprendería lo inútil que es la seguridad criptográfica en la generación de PRNG en tiempo real. los números irracionales a menudo se usan en GPN PRNG. Hay muchas aplicaciones en las que la "seguridad" de su PRNG es simplemente irrelevante. Lo que importa en algo como la generación coherente de ruido es la calidad de la distribución y la frecuencia con la que se repite su período, y los efectos de correlación debidos a las semillas adyacentes (que requerirían mezcladores de avalanchas para arreglarse). Honestamente, su respuesta es incorrecta, no pertenece aquí y probablemente debería eliminarse.
cuando

66
Esta no es una respuesta a la pregunta. Tenga en cuenta que el OP de la pregunta vinculada utiliza números aleatorios para sembrar un análisis de Monte Carlo. Se debe considerar una actualización para abordar la pregunta formulada. mathoverflow.net/questions/26942/…
CramerTV

8
Ciertamente, hay muchas aplicaciones en las que los PRNG no necesitan ser criptográficamente seguros. Pero OP no preguntó si era útil para algunos propósitos, preguntaron si este método era un "RNG perfecto". Si bien no han aclarado lo que quieren decir con "perfecto", el hecho de que no sea adecuado para uno de los principales usos de los RNG parece muy relevante para responder esa pregunta.
Geoffrey Brent

7

( actualizado después de que muchas personas señalaron que el generador de números aleatorios no es lo mismo que una sola secuencia normal)

π

π

Para obtener datos de distribución de dígitos, consulte, por ejemplo, http://www.eveandersson.com/pi/precalculated-frequencies o https://thestarman.pcministry.com/math/pi/RandPI.html (primeros 1000 dígitos):

ingrese la descripción de la imagen aquí

En Mathoverflow, también hay buenas respuestas en:


3
Si cree que la pregunta es un duplicado, ¿por qué la responde? Simplemente debe marcarlo, no reforzar el comportamiento de publicación no deseado.
dkaeae

8
@dkaeae No hay soporte para duplicados de preguntas en otros sitios. Además, la misma pregunta en diferentes sitios puede obtener diferentes respuestas. En este caso, un sitio como Mathematics podría no tener mucho en cuenta las preocupaciones de seguridad. Ver también esta respuesta . Tenga en cuenta que desaconsejamos hacer la misma pregunta en varios sitios al mismo tiempo, ya que esto tiende a generar esfuerzos desperdiciados. Pero la misma pregunta de diferentes personas en diferentes momentos en diferentes sitios generalmente está bien.
Lagarto discreto

66
Desafortunadamente, el hecho de que un número sea normal no significa que generar sus dígitos le proporcione un buen RNG. Los resultados de tal RNG aún son completamente predecibles. Si eso es aceptable puede depender de la aplicación. Entonces, no creo que sea tan simple como decir "pi es normal, caso cerrado".
DW

2
¿Eso es solo observación emperical para los primeros dígitos? ¿Qué se quiere decir con eso?
Mariscal artesanal

1
@DW Mencioné que tengo la intención de usar una combinación de números como π y e. Y por favor, ¿cómo será predecible la salida si no sabemos qué tan lejos ha ido la secuencia del generador?
Abhradeep Sarkar

1

En general, este enfoque no funciona: "aleatoriedad" no significa que obtenga muchos dígitos diferentes, pero también hay otros aspectos. Por ejemplo, una prueba clásica es ver si todas las combinaciones de dos dígitos o tres dígitos, etc. ocurren con la misma frecuencia. Esta sería una prueba muy simple, que puede descartar resultados obvios no aleatorios, pero sigue siendo demasiado simplista para verificar un comportamiento realmente aleatorio.

Vea la página de Wikipedia sobre las pruebas de aleatoriedad como una colección de enlaces a fuentes primarias sobre esto. Mencionan una buena cantidad de conceptos que suenan bastante complicados; no es tan importante entrar en detalles sobre esto, pero está claro que no es intuitivamente posible declarar un número específico como una buena fuente para tales dígitos.

En una nota positiva: para un número irracional específico, por supuesto, es libre de probarlo; es decir, calcule el número en un grado suficientemente grande de dígitos y ejecútelo a través de todas las pruebas conocidas (existen herramientas para eso, consulte el enlace anterior). Si la medida es lo suficientemente buena para su caso de uso, y si es consciente de que esto es obviamente inútil para aplicaciones criptográficas, y siempre obtiene los mismos números si debe comenzar de nuevo, y que la calidad podría degradarse si supera el nelegido para probar la aleatoriedad, puede usar esos números. Pero será mucho mejor usar un generador de números aleatorio (pseudo-) dedicado; y nada supera una buena fuente física de aleatoriedad.


44
πe

3
La respuesta de Ayrat enlaza con otros sitios donde los matemáticos han realizado estas pruebas. Creen, pero no han demostrado, que π cumple con las pruebas estadísticas.
Barmar

Sí, eso es lo que quise decir con mi último párrafo: solo vale la pena intentarlo empíricamente; pero rigurosamente no se ha demostrado (o no se puede suponer simplemente que sea cierto) para los arbitrarios "complicados" irracionales. @DavidRicherby, @ Barmar
AnoE

1

Proporciona un buen número aleatorio hasta que te das cuenta de cómo se produjo, como ocurre con muchos números pseudoaleatorios. Los números irracionales (no algebraicos y no trascendentales) que ha elegido son comunes y son más fáciles de adivinar que otros. No veo ningún problema con este método, siempre que elija generadores menos comunes.


44
No hay problema, excepto la gran ineficiencia, el hecho de que confía en cualquier adversario que no sabe cuál es su algoritmo, el hecho de que una mala elección de generador podría conducir a una secuencia muy pobre, ...
David Richerby

44
2πe

Un número trascendental es un número real que no es algebraico. No es posible que un número real sea no algebraico y no trascendental.
Brady Gilg
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.