ExpertiDict

C · Essencial · Inglês · Técnico

rand

/ɹænd/função

Função de stdlib.h que devolve um inteiro pseudoaleatório entre 0 e RAND_MAX. Sem chamar srand antes, a sequência é sempre a mesma a cada execução do programa.

Onde usar

Aparece em jogos simples e testes. Em code review se questiona a qualidade e o uso de rand() % n, que distorce a distribuição; para segurança ela nunca serve.

Em código

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void) {
  srand((unsigned)time(NULL));  // semente
  printf("%d\n", rand() % 6 + 1);
}

Exemplos

I forgot to call srand, so it prints the same numbers every run.

Esqueci de chamar o srand, então ele imprime os mesmos números a cada execução.

Don't use rand for passwords.

Não use rand para senhas.

Cuidado

Usar rand para tokens ou senhas, ou chamar srand(time(NULL)) a cada volta de um laço, repetindo a mesma semente.

Sinônimos

gerador pseudoaleatório

Origem

Abreviação de random, aleatório.

Veja também

Todos os termos de C