Técnicas e Algoritmos - Números aleatórios
A linguagem php define uma função de nome rand(), uma abreviatura de random. Esta função gera números aleatórios entre 0 e RAND_MAX.
Protótipo da função rand()
Os colchetes indicam que os parâmetros podem ser omitidos. Se chamado sem os parâmetros opcionais (min e max), rand() retornará um número aleatório entre 0 e RAND_MAX. Se você precisa de um número aleatório entre 5 e 15 (inclusive), por exemplo, utilize rand (5,15).
Nota: A partir do PHP 4.2.0, não é mais necessário semear o gerador de números aleatórios com srand() pois isso é feito automaticamente.
Entendendo como funciona o gerador de números aleatórios.
Talvez você esteja se perguntando o que significa semear o gerador de números aleatórios. Bom, Imagine que a função rand() simplismente execute um calculo numérico baseado em valores pre-estabelecidos e quando chamada apenas retorne o resultado desse cálculo e guarde esse valor em algum lugar na memoria, na próxima chamada à função imagine que ela execute o mesmo cálculo, porém desta vez baseado no resultado da operação anterior. Sendo assim toda vez que uma chamada a rand() fosse realizada um novo número seria apresentado
como resultado.
Agora o pequeno detalhe. Quando você chamasse novamente a função rand() pela primeira vez, ou seja, sem que haja nenhum resultado anterior em memória o que aconteceria?
Você obteria o mesmo resultado de quando a chamou pela primeira vez, pois o primeiro cálculo é realizado com numero pre-estabelecidos, lembra?
Para resolver esse problema foi preciso apresentar um número diferente para a função rand() sempre que houvesse uma primeira chamada à função. Para gerar esse numero diferente, poderiamos por exemplo nos basear na data/hora em que a função foi chamada, e o cálculo realizado pela função rand() usaria esse número ao invés de usar números pre-estabelecidos.
E isso é o que chamamos de gerar uma semente, ou semear o gerenciador de números aleatórios.
Protótipo da função rand()
int rand ( [int min, int max] );
Os colchetes indicam que os parâmetros podem ser omitidos. Se chamado sem os parâmetros opcionais (min e max), rand() retornará um número aleatório entre 0 e RAND_MAX. Se você precisa de um número aleatório entre 5 e 15 (inclusive), por exemplo, utilize rand (5,15).
Nota: A partir do PHP 4.2.0, não é mais necessário semear o gerador de números aleatórios com srand() pois isso é feito automaticamente.
Entendendo como funciona o gerador de números aleatórios.
Talvez você esteja se perguntando o que significa semear o gerador de números aleatórios. Bom, Imagine que a função rand() simplismente execute um calculo numérico baseado em valores pre-estabelecidos e quando chamada apenas retorne o resultado desse cálculo e guarde esse valor em algum lugar na memoria, na próxima chamada à função imagine que ela execute o mesmo cálculo, porém desta vez baseado no resultado da operação anterior. Sendo assim toda vez que uma chamada a rand() fosse realizada um novo número seria apresentado
como resultado.
Agora o pequeno detalhe. Quando você chamasse novamente a função rand() pela primeira vez, ou seja, sem que haja nenhum resultado anterior em memória o que aconteceria?
Você obteria o mesmo resultado de quando a chamou pela primeira vez, pois o primeiro cálculo é realizado com numero pre-estabelecidos, lembra?
Para resolver esse problema foi preciso apresentar um número diferente para a função rand() sempre que houvesse uma primeira chamada à função. Para gerar esse numero diferente, poderiamos por exemplo nos basear na data/hora em que a função foi chamada, e o cálculo realizado pela função rand() usaria esse número ao invés de usar números pre-estabelecidos.
E isso é o que chamamos de gerar uma semente, ou semear o gerenciador de números aleatórios.
Páginas:
1
2
Novo Comentário: