Aleatório#

Introdução#

A Biblioteca Standard C++ disponibiliza funções para gerar números pseudo-aleatórios. Estas podem ser utilizadas no VEXcode EXP para comportamentos que requerem variabilidade ou aleatoriedade.

Funções#

A biblioteca <cstdlib> inclui as seguintes funções:

  • rand — Devolve um número inteiro aleatório.

  • srand — Define a semente aleatória.

rand#

Devolve um número inteiro aleatório entre 0 e 2.147.483.647.

Available Functions
int rand();

Parameters

Esta função não aceita qualquer parâmetro.

Return Values

Devolve um número inteiro aleatório entre 0 e 32767.

Notes
  • Para devolver um número inteiro aleatório dentro de um limite único, utilize o padrão rand() % max.

  • Para devolver um número inteiro aleatório dentro de um intervalo específico, utilize o padrão rand() % (max - min + 1) + min.

Examples
// Display a random number
Brain.Screen.print("%d", rand());

// Display a random number between 0 and 100
Brain.Screen.print("%d", rand() % 101);

// Display a random number between 5 and 10
Brain.Screen.print("%d", rand() % (10 - 5 + 1) + 5);

srand#

Define a semente a utilizar pelo gerador de números pseudo-aleatórios na função rand.

Available Functions
void srand( unsigned int seed );

Parameters

Parâmetro

Tipo

Descrição

seed

unsigned int

O valor inicial da semente.

Return Values

Esta função não devolve qualquer valor.

Notes
  • Chame rand apenas uma vez, perto do início do seu projeto, antes de chamar randNão precisa de chamar antes de cada srand.

  • Se srand nunca for chamado, o programa comporta-se como se srand(1) fosse utilizado. Isto significa que rand produz a mesma sequência de números sempre que o projeto é executado.

  • Para obter resultados diferentes a cada execução do projeto, utilize um valor inicial que mude entre execuções, como por exemplo o Temporizador do Brain.

  • Para obter sempre os mesmos resultados (útil para testes), utilize uma semente com um número fixo, como por exemplo srand(1).

Examples
// Use the same seed for random number
srand(5);
Brain.Screen.print("%d", rand() % 100);