Módulo Python random: resumo das funções
O módulo random do Python possui diversas funções para gerar números aleatórios em diferentes formatos, desde números inteiros até números de vírgula flutuante, ou selecionar elementos de listas.
O que é o módulo Python random?
O módulo Python random é uma biblioteca integrada com a qual é possível gerar números aleatórios e realizar operações aleatórias nos programas. Dispõe de várias funções para gerar números pseudoaleatórios que podem ser utilizados em muitos campos, desde a simulação até ao desenvolvimento de jogos e tarefas criptográficas.
Uma das suas características importantes é a capacidade de reprodutibilidade. Ao especificar um valor inicial ou semente, os resultados da geração de números aleatórios podem ser replicados, o que é útil para realizar testes, experiências e simulações que requerem dados aleatórios consistentes.
Lista de funções do módulo random
O módulo random do Python contém diferentes métodos para gerar e processar números aleatórios. A tabela a seguir resume suas funções e características:
| Nome da função | Explicação |
|---|---|
seed(a=None, version=2)
|
Define o valor inicial (semente) para o gerador de números aleatórios. |
getstate()
|
Retorna o estado atual do gerador de números aleatórios como objeto. |
setstate(state)
|
Redefine o estado do gerador de números aleatórios através de um objeto de estado. |
getrandbits(k)
|
Retorna um número inteiro com k bits. |
randrange(start, stop, step)
|
Cria um número inteiro aleatório dentro do intervalo especificado. |
randint(a, b)
|
Retorna um número inteiro aleatório dentro do intervalo especificado. |
choice(seq)
|
Retorna um elemento aleatório da sequência definida. |
choices(population, weights=None, *, cum_weights=None, k=1)
|
Cria uma lista com k elementos selecionados aleatoriamente da população; as probabilidades podem ser especificadas opcionalmente. |
sample(k, population)
|
Cria uma lista com k elementos selecionados aleatoriamente da população; sem duplicados. |
shuffle(x)
|
Mistura os elementos de uma lista numa ordem aleatória. |
random()
|
Retorne um número flutuante aleatório no intervalo de 0 a 1. |
uniform(a, b)
|
Retorna um número de ponto flutuante aleatório no intervalo especificado, incluindo os valores limite. |
triangular(low, high, mode)
|
Cria um número aleatório de ponto flutuante na distribuição triangular. |
betavariate(alpha, beta)
|
Retorna um número flutuante aleatório de uma distribuição beta. |
expovariate(lambd)
|
Retorna um número flutuante aleatório de uma distribuição exponencial. |
gammavariate(alpha, beta)
|
Cria um número flutuante aleatório de uma distribuição gama. |
gauss(mu, sigma)
|
Retorna um número flutuante aleatório de uma distribuição gaussiana. |
lognormvariate(mu, sigma)
|
Cria um número flutuante aleatório de uma distribuição logarítmica normal. |
normalvariate(mu, sigma)
|
Retorna um número flutuante aleatório de uma distribuição normal. |
vonmisesvariate(mu, kappa)
|
Retorna um número flutuante aleatório de uma distribuição de Von Mises. |
paretovariate(alpha)
|
Retorna um número flutuante aleatório de uma distribuição de Pareto. |
weibullvariate(alpha, beta)
|
Retorna um número flutuante aleatório de uma distribuição de Weibull. |
Selecionar elementos aleatórios de uma lista
Para selecionar vários elementos aleatórios de uma lista, pode utilizar a função choices(seq, k=n) do módulo aleatório do Python, em que n é o número de elementos aleatórios desejados.
import random
# A list of elements
my_list = ['Apple', 'Banana', 'Orange', 'Strawberry', 'Cherry']
# Randomly selecting an element from the list
random_elements = random.choices(my_list, k=3)
print("Randomly selected elements:", random_element)pythonNeste exemplo, a função choices() é utilizada para selecionar três elementos aleatórios da lista my_list. Os resultados são devolvidos como uma lista de três elementos aleatórios.
Misturar uma lista
A função shuffle() ordena os elementos das listas Python numa ordem aleatória.
import random
# A list of elements
my_list = ['Apple', 'Banana', 'Orange', 'Strawberry', 'Cherry']
# Shuffle the elements in the list
random.shuffle(my_list)
print("Shuffled list:", my_list) # Example Output: Shuffled list: ['Strawberry', 'Banana', 'Apple', 'Cherry', 'Orange']pythonTenha em atenção que shuffle() altera a lista e não devolve uma nova. Após utilizar esta função, a lista original ficará numa ordem aleatória.
Estabelecer uma semente
Se utilizar random.seed() módulo random do Python para definir um valor de semente específico, o gerador de números aleatórios começará a gerar números aleatórios com base nessa semente. Ou seja, se definir o mesmo valor de semente posteriormente, o mesmo conjunto de números aleatórios será gerado na aplicação.
import random
# Setting the seed value to 42
random.seed(42)
# Generating random numbers
print(random.random()) # Example output: 0.6394267984578837
print(random.random()) # Example output: 0.025010755222666936
# Resetting the seed value to 42
random.seed(42)
# Generating random numbers again
print(random.random()) # Example output: 0.6394267984578837 (identical to the previous value)
print(random.random()) # Example output: 0.025010755222666936 (identical to the previous value)pythonDepois de definir o valor inicial ou semente, são gerados e emitidos números aleatórios. Se o valor da semente for redefinido para o mesmo valor, os mesmos números aleatórios serão gerados novamente. No código acima, a semente tem o valor 42, portanto, os números aleatórios podem ser reproduzidos sempre que o valor da semente permanecer o mesmo.