C · Essencial · Inglês · Técnico
rand
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.