Aleatório#

Introdução#

O módulo urandom , que está disponível por defeito no VEXcode V5. Estes métodos permitem gerar números aleatórios, números de ponto flutuante e valores a partir de listas ou intervalos — úteis para adicionar imprevisibilidade a jogos, comportamentos e tomada de decisões autónomas.

Segue-se uma lista dos métodos disponíveis:

  • randint – Devolve um número inteiro aleatório entre dois valores (inclusive).

  • uniform – Devolve um número de ponto flutuante aleatório entre dois valores.

  • randrange – Devolve um número inteiro aleatório de um intervalo com um passo opcional.

  • seed – define o valor inicial para o gerador de números pseudo-aleatórios de urandom.

randint#

randint devolve um número inteiro aleatório entre dois valores (inclusive), em que ambos os valores são inteiros.

Usage:
urandom.randint(a, b)

Parâmetro

Descrição

a

Um número inteiro que representa o limite inferior inclusivo do intervalo.

b

Um número inteiro que representa o limite superior inclusivo do intervalo.

# Generate a random integer between
# 1 and 10 (inclusive)
urandom_int = urandom.randint(1, 10)
brain.screen.print(urandom_int)

# urandom_int = (random integer between 1 and 10)

uniforme#

uniform devolve um número de ponto flutuante aleatório entre dois valores, em que ambos os valores são números de ponto flutuante ou inteiros.

Usage:
urandom.uniform(start, end)

Parâmetro

Descrição

start

Um número de ponto flutuante ou inteiro que representa o limite inferior do intervalo.

end

Um número de ponto flutuante ou inteiro que representa o limite superior do intervalo.

# Generate a random float 
# between 5.0 and 10.0
urandom_uniform = urandom.uniform(5.0, 10.0)
brain.screen.print(urandom_uniform)

# urandom_uniform = (random float 
# between 5.0 and 10.0)

randrange#

randrange devolve um número inteiro aleatório de um intervalo com um incremento opcional, em que os valores inicial e final são números inteiros.

Usage:
urandom.randrange(start, stop, step)

Parâmetro

Descrição

start

Opcional. Um número inteiro que representa o valor inicial inclusivo do intervalo. O predefinido é 0.

stop

Um número inteiro que representa o valor final único do intervalo.

step

Opcional. Um número inteiro que representa a diferença entre cada número do intervalo. O valor predefinido é 1.

# Generate a random integer from
# 0 to 9 (exclusive of 10)
urandom_range = urandom.randrange(10)
brain.screen.print(urandom_range)

# urandom_range = (random integer from 0 to 9)

# Generate a random integer from
# 5 to 15 (exclusive of 15)
urandom_range = urandom.randrange(5, 15)
brain.screen.print(urandom_range)

# urandom_range = (random integer from 5 to 14)

# Generate a random integer from
# 10 to 50, stepping by 5
urandom_range = urandom.randrange(10, 50, 5)
brain.screen.print(urandom_range)

# urandom_range = (random multiple of 5 between 10 and 45)

semente#

seed define o valor inicial para urandom, o gerador de números pseudo-aleatórios.

Se não definir uma semente, o seu projeto poderá gerar a mesma sequência aleatória sempre que for iniciado.

Para obter resultados diferentes em cada execução, defina a semente uma única vez no início do projeto utilizando um valor que mude entre execuções — como leituras da bateria, um valor de temporizador ou uma combinação de ambos.

Usage:
urandom.seed(seed)

Parâmetro

Descrição

seed

Um número inteiro utilizado para iniciar a sequência pseudoaleatória.

# Set a different seed each time the project starts
urandom.seed(int(brain.battery.current()))