random.SystemRandom

Nombre completo
random.SystemRandom
Librería
random
Sintaxis

random.SystemRandom([seed])

Descripción

random.SystemRandom es una clase que utiliza la función os.urandom() para la generación de números aleatorios a partir de fuentes proveídas por el sistema operativo. Esta clase no se basa en el estado del software y las secuencias de números generadas no son reproducibles. Esto supone que el método seed() no tiene ningún efecto y se ignora.

Podemos ver el conjunto de nombres asociados a esta clase con el siguiente código:

names = lambda obj: print([n for n in dir(obj) if not n.startswith("_")])
names(random.SystemRandom())
['VERSION', 'betavariate', 'choice', 'choices', 'expovariate', 'gammavariate', 'gauss', 'gauss_next', 'getrandbits', 'getstate', 'lognormvariate', 'normalvariate', 'paretovariate', 'randint', 'random', 'randrange', 'sample', 'seed', 'setstate', 'shuffle', 'triangular', 'uniform', 'vonmisesvariate', 'weibullvariate']

Comprobamos que incluye bastantes de las funciones disponibles en la librería random.

Ejemplos

Podemos obtener un número aleatorio en el rango [0, 1) extraído de una distribución uniforme con el siguiente código:

random.SystemRandom().random()
0.012833647854822439

De forma semejante, podemos obtener un número aleatorio entero en el rango [11, 16] extraído de una distribución uniforme con el siguiente código:

random.SystemRandom().randint(11, 16)
13
Enviado por admin el Dom, 21/03/2021 - 11:09