float python random seed

float - Python al azar: ¿Qué sucede si no uso semilla(algo de Valor)?



random uniform python (3)

se utiliza la hora actual del sistema; La hora actual del sistema también se usa para inicializar el generador cuando el módulo se importa por primera vez. Si el sistema operativo proporciona fuentes de aleatoriedad, se utilizan en lugar de la hora del sistema (consulte la función os.urandom () para obtener detalles sobre la disponibilidad).

Documentos aleatorios

a) En este caso, ¿el generador de números aleatorios usa el reloj del sistema (haciendo el cambio de semilla) en cada ejecución?

b) ¿Se utiliza la semilla para generar los valores pseudoaleatorios de expovariate (lambda)?


"¡Usa la Fuente, Luke!" ... ;-). Estudiar https://svn.python.org/projects/python/trunk/Lib/random.py lo tranquilizará rápidamente ;-).

Qué sucede cuando la semilla no está establecida (ese es el caso "i is None"):

if a is None: try: a = long(_hexlify(_urandom(16)), 16) except NotImplementedError: import time a = long(time.time() * 256) # use fractional seconds

y la expovariable:

random = self.random u = random() while u <= 1e-7: u = random() return -_log(u)/lambd

obviamente utiliza el mismo generador aleatorio subyacente que cualquier otro método, y por lo tanto se ve afectado de manera idéntica por la siembra o la falta de la misma (en realidad, ¿de qué otra forma se habría hecho? -)


a) Normalmente utiliza el reloj del sistema, el reloj de algunos sistemas solo puede tener una mayor precisión y, por lo tanto, la inicialización dos veces puede dar como resultado el mismo valor.

seed (self, a = None) Inicializa el estado interno del objeto hashable.

None or no argument seeds from current time or from an operating system specific randomness source if available.

http://pydoc.org/2.5.1/random.html#Random-seed

b) Me imagino que expovariate lo hace, pero no puedo encontrar ninguna prueba. Sería tonto si no fuera así.