tadarank afiliados

Mostrando postagens com marcador random. Mostrar todas as postagens
Mostrando postagens com marcador random. Mostrar todas as postagens

11 dezembro, 2009

Função Random (aleatório) que não se repete em Javascript - PseudoRandom

Háaaaaa

Direto tem gente reclamando de funções random, que, muitas vezes não se parecem nada aleatórias.

Tipo hoje, o brodi chamado luis henrique (kakaroto) tava reclamando que o random dele, muitas vezes, repetia o valor que saiu no sorteio anterior.

Ora, a probabilidade do número se repetir em um sorteio é bastante pequena para uma grande faixa de números (tipo 0 a 100) porém é uma probabilidade MUITO alta em faixa pequena de números (tipo 0 a 5).

Ora, se é aleatório, é aleatório. Mesmo que o número já tenha saído da última vez ele tem a probabilidade de sair novamente hehee.

Mas, como muita gente não fica satisfeito com esta possibilidade, bora gambiarrar mais uma vez pra impedir um número de se repetir.

Se este é seu caso, divirta-se com o código javascript abaixo (que eu chamei de 'pseudo-random'):

function pseudoRand(size){
 //gerando o rand de zero a 'size - 1'
 var randa = Math.floor(Math.random() * size);
 //testando se o rand novo é igual ao antigo
 if(typeof(oldrand)!='undefined'){
  while(randa==oldrand){
   //se for igual, eu gero um novo
   randa = Math.floor(Math.random() * size);
  }
 }
 //guardando o ultimo rand em uma var global
 window['oldrand'] = randa;
 //retornando o rand atual
 return randa;
}

Uso

//vai alertar um random de 0 a 3 sem possibilidade de repetir o anterior
alert(pseudoRandom(4))
Gostou da dica acima? Então clica nos botões de compartilhamento abaixo e me ajude a dica a subir no Google.

Resultado! Concursos