Duplicar posibles:
Python's random: What happens if I don't use seed(someValue)?Semillas() y números aleatorios en Python
Hoy, me dijeron que sólo acerca de la función seed()
de un programador con mucha más experiencia que yo. Normalmente solo llamo al choice()
con una lista como argumento, ya que no necesito más funcionalidad de números aleatorios que eso.
Mi amigo programador me dijo que llamar a la semilla es necesario porque de lo contrario Python siempre comienza operaciones de números aleatorios con cero como la inicialización predeterminada. Esto significa que, aunque los números parecen aleatorios, en realidad estamos obteniendo la misma secuencia cada vez.
Esto me parece bastante extraño. ¿La función choice()
, por ejemplo, realmente no llama a semilla antes de que haga su trabajo? ¿O es la razón por la cual no puede cambiar su semilla de forma programática porque eso en sí mismo implicaría elegir un número aleatorio, y obviamente que es un problema si nuestro objetivo final es también elegir un número aleatorio!
Estoy despotricando un poco aquí, pero me pregunto si alguien tiene una idea clara de cómo se implementó todo esto.
Estas son todas las cosas que puede aprender en la documentación (http://docs.python.org/library/random.html), o probándolas usted mismo en el intérprete. Intenta ejecutar Python y haz 'random.choice (range (1000))' dos veces. ¿Recibes la misma respuesta? –
@MichaelHoffman te has perdido el punto. Por supuesto, no obtendrás la misma respuesta al hacerlo dos veces en el mismo proceso de Python. La prueba correcta es abrir dos procesos y probarlo en cada uno. –
Lo escribí mal. Quise decir que toda la operación (ejecutar Python y realizar la función) debería hacerse dos veces. –