Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sargita

[Resolvido] Random

Recommended Posts

Ola pessoal estou comecando no forum e javascript... e estou com uma dificuldade:

 

No codigo:

function rand(1234,9876) {
   var result = Math.floor(Math.random() * (9877));
   if(result < 1234){
       return rand(1234,9876);
   } else {
       return result;
   }

}

Preciso q aceite somente numeros com digitos distintos... exemplo:

1234,5678,4321,4123...etc

E nunca saia 3311,3333,1244...etc

Pensei em fazer por substring..mas nao sei como fazer!

 

Esperanto resposta!

 

Grato Desde ja!

Compartilhar este post


Link para o post
Compartilhar em outros sites

O primeiro que você tem que fazer é tirar aqueles números dos parametros da função, porquê no Javascript não é permitido.

 

E eu faria sim: ia gerando um número aleatório e armazenando esse número numa array (Usando o metódo push() ou unshift()) e ao mesmo tempo verificando se número gerado está na array, se estiver, gera outro, se não estiver, continua esse. E no final, retorna os números aleatórios.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu faria um pouco mais simples.. eu acho..

 

o algoritmo que pensei, é assim:

faz um array com 10 posições,

 

0,1,2,3... 9

embaralha esse array.

 

pega as 4 primeiras posições.

 

Pronto, ai está o seu número de 4 digitos diferentes.

 

não há exemplo. No fórum te ajudaremos, postar o algoritmo é uma forma de ajudar. Vá atrás, pesquise com base no que foi dito, e faça.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz esse código pra quem estiver precisando também:

 

function rand( max ) {
for ( i = 0, numbers = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ], result = []; i < max; ) {
	result[i++] = numbers[ random = ( Math.random() * numbers.length ) >> 0 ];
	numbers.splice( random, 1 );
}
return result;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.