random()

Descrição

A função

random()
gera números pseudoaleatórios.

Sintaxe

  • random(max)
  • random(min, max)

Parâmetros

  • min
    - menor limite do valor aleatório, inclusivo e opcional (long)
  • max
    - maior limite do valor aleatório, exclusivo (long)

Retorna

Um número inteiro aleatório entre min e max-1 (

long
) .

Código de exemplo

O código abaixo gera números aleatórios e os imprime na porta serial.

1long randNumber;
2
3 void setup() {
4 Serial.begin(9600);
5
6 // Se o pino de entrada analógica 0 é deixado desconectado,
7 // o ruído aleatório analógico irá causar a chamada de randomSeed()
8 // gerar sementes aleatórias diferentes cada vez que o sketch roda.
9 // randomSeed() basicamente "embaralha" a função random().
10 randomSeed(analogRead(0));
11 }
12
13 void loop() {
14 // imprime um número aleatório entre 0 e 299
15 randNumber = random(300);
16 Serial.println(randNumber);
17
18 // imprime um valor aleatório entre 10 e 19
19 randNumber = random(10, 20);
20 Serial.println(randNumber);
21
22 delay(50);
23 }

Notas e Advertências

Se é importante que uma sequência de valores gerados por

random()
seja diferente em execuções subsequentes de um sketch, use
randomSeed()
para inicializar o gerador de números aleatórios com uma entrada significantemente aleatória, como
analogRead()
em um pino desconectado.

Por outro lado, pode ser ocasionalmente útil usar sequências pseudoaleatórias exatamente repetidas. Isso pode ser conseguido chamando-se

randomSeed()
com um número fixo, antes de começar a usar a sequência aleatória.

O parâmetro

max
deve ser escolhido de acordo com o tipo de dado da variável na qual o valor será guardado. De qulquer forma, o valor máximo absoluto é limitado pela natureza
long
(32 bit - 2,147,483,647) do valor gerado. Escolher um valor
max
maior que isso não irá gerar erros durante a compilação, mas durante a execução do sketch, os números gerados irão se comportar de forma impredizível.

Ver Também

Suggest changes

The content on docs.arduino.cc is facilitated through a public GitHub repository. If you see anything wrong, you can edit this page here.

License

The Arduino documentation is licensed under the Creative Commons Attribution-Share Alike 4.0 license.