Atualizado em 15 de Fevereiro de 2013

Número Randômico em PHP - rand e mt_rand

No PHP é muito simples gerar números randômicos, existem duas funções de fácil utilização para tal comando, são elas: rand e mt_rand.

Neste post vamos explorar as duas e suas diferenças, vamos lá então.

Comando rand


O comando rand gera números randômicos de forma um pouco mais lenta do que o nosso próximo comando, contudo sua aplicação tem a mesma utilidade. Vejamos a estrutura do comando:

 rand(int $minimo [opcional], int $maximo [opcional])

Tanto o valor mínimo quanto o valor máximo são opcionais, não sendo preciso sua utilização. Só usamos tais parâmetros quando e preciso determinar que o número randômico gerado esteja dentro de um valor pré-definido.

Vamos ao exemplo:

<?php
echo rand().'<br/>'; // Resultado: Gera um número randômico.

echo rand(20, 50); // Resultado: Gera um número randômico que esteja entre 20 e 50.
?>

Comando mt_rand


A diferença do comando rand e o comando mt_rand é que o primeiro usa a geradores de números randômicos das libcs antigas, que são duvidosas é lentas.

Já a função mt_rand vem como uma opção para a substituição do primeiro comando, ela gerar seu números randômicos através do "Mersenne Twister", que produz números quatros vezes mais rápidos do que o comando rand().

Veja sua estrutura:

 mt_rand(int $minimo [opcional], int $maximo [opcional])

Neste comando os parâmetros também são opcionais.

Veja o exemplo:

<?php
echo mt_rand().'<br/>'; // Resultado: Gera um número randômico.

echo mt_rand(10, 40); // Resultado: Gera um número randômico que esteja entre 10 e 40.
?>

Até a próxima pessoal.


Gostou do post, continue por dentro das dicas de programação!!! Assine a newsletter.

Tags:  Comandos PHP | PHP

Comentários

Sua foto do perfil

celso redes

Show de bola.
Tem algo para utilizar em um SQL ?
Tipo atraves de select pegar 10 registros aleatoriamente em uma tabela ?

Obrigado

11 de Dezembro de 2015 - 22:19

Sua foto do perfil

Mauricio Programador

Olá Celso,

Tem sim, na consulta SQL você usa assim:

SELECT * tabela ORDER BY RAND() LIMIT 10

Abraço.

04 de Janeiro de 2016 - 09:12

NEWSLETTER

Receba dicas de programação
em seu e-mail

TWITTER

Acompanhe tudo o que rola
com Mauricio Programador

NEWSLETTER