Pregunta

En una vista en Django utilizo random.random(). ¿Con qué frecuencia tengo que llamar random.seed()? Un tiempo para cada petición? Un tiempo para cada estación del año? Una vez mientras el servidor web está funcionando?

¿Fue útil?

Solución

random.seed() llamada rara en todo caso.

Para ser al azar, debe permitir que el generador de números aleatorios para funcionar sin tocar la semilla. La secuencia de números es lo que es aleatorio. Si cambia la semilla, se inicia una nueva secuencia. Los valores de inicialización pueden no ser muy aleatoria, dando lugar a problemas.

En función de la cantidad de números que necesita, se puede considerar el restablecimiento de la semilla de la /dev/random periódicamente.

Usted debe tratar de restablecer la semilla justo antes de que haya utilizado la semilla anterior. Usted no recibe la totalidad de 32 bits de aleatoriedad, así que sería bueno para restablecer la semilla después de generar 2 ** 28 números.

Otros consejos

No establecer la semilla.

El único momento en que desea establecer la semilla es si usted quiere asegurarse de que los mismos acontecimientos siguen ocurriendo. Por ejemplo, si usted no quiere dejar que los jugadores hacen trampa en su juego, puede guardar la semilla, y luego configurarlo cuando cargan su juego. Entonces no importa cuántas veces se ahorra + recarga, todavía da los mismos resultados.

Realmente depende de lo que necesita el número aleatorio para. Use un poco de experimentación para averiguar si hace alguna diferencia. También debe considerar que en realidad hay un patrón de números pseudo-aleatorios. ¿Hay alguna diferencia para usted si alguien puede adivinar posible el siguiente número aleatorio? Si no es así, la semilla de una vez al comienzo de una sesión o cuando el servidor inicia por primera vez.

Siembra una vez al inicio de la sesión, probablemente la mayoría del sentido, de la OMI. De esta manera el usuario obtendrá un conjunto de números pseudo-aleatorios a lo largo de su sesión. Si las semillas cada vez que se publica una página, no se les garantiza esto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top