Pseudo-Random-Number-Generator a partir de un número normal computable
Pregunta
¿No es fácil construir un PRNG de esta manera? ¿Por qué no se hace?
Es decir, que yo sepa, podríamos simplemente tener un PRNG que toma una semilla n. Cuando solicita un bit aleatorio, toma el n. ° dígito de la expansión binaria del número normal computable, e incrementa n.
Mi primer pensamiento fue que quizás no habíamos encontrado un número normal computable, pero
Solución Eso haría que la predicción de la salida sea realmente simple. Digamos, por ejemplo, que genera el entero 0x54a30b7f. Si tiene 4GiB de pi (o un ruido aleatorio o un número normal real), es probable que solo ocurra uno (o quizás un puñado) de ese entero particular y puedo predecir con una probabilidad razonablemente alta todos los números futuros. Este es un problema serio en el caso de PRNG criptográficamente fuertes. Si en lugar del simple escaneo secuencial usas alguna función, solo tengo que seguir la función que si es lo suficientemente difícil de seguir se convierte en un PRNG por derecho propio. Si no está preocupado por la potencia criptográfica de su generador, existen formas mucho más compactas de generar números aleatorios. Mersenne Twister , por ejemplo, tiene un período mucho más grande sin requerir una tabla de consulta de 4GiB.