Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Estou com dúvida no curso de Lógica de Programação, no exercício 1 do capítulo Desafio final.

Opa! Na resposta passada pelo professor no desafio final de lógica ele usou uma função que não resulta sempre em números distintos, e em uma loteria números repetidos nunca são sorteados! Fiz o teste no console, é um pouco chato, mas se você ficar atualizando a tela irá perceber que em determinados minutos os números se repetem!

2 respostas

Na loteria é como se randomizasse 60 números por isso a probabilidade de repetir é tão difícil, no exercício deve ter uma menor quantidade de números assim a probabilidade aumenta.

solução

Bem, não acho que deveria ser assim. É importante criar uma função que tragar números randomicos e únicos. Criei a função abaixo para isto.

var novoSorteio = [];

            while(novoSorteio.length < 6){
                  var randomnumber = Math.ceil(Math.random() * 60 ) 
                  var found = false;
                  for(var i = 0 ; i < novoSorteio.length; i++ ){
                    if(novoSorteio[i] == randomnumber) {
                        found=true; 
                        break 
                    }
                  }
                  if(!found)novoSorteio[novoSorteio.length] = randomnumber;
            }