estou ja ha alguns dias quebrando a cabeça para criar essa função mais não ta saindo.
eh o seguinte, o programa tem que gerar 6 valores consecultivos sem repetir os valores, usando a função Randon ela sorteia de 0 a o valor determinado sempre, e pode ter o caso de sair repetido, e eh justamente nisso que eu estou parado.
vc pode ir armazenando os numeros gerados em um array. para cada novo número vc compara se ele ja foi sorteado e, se for o caso, sorteia outro.
ai vc vai descobrir que isso é um algoritmo interessante mas muito ruim e pode pensar numa forma de, dado um array de numeros em sequencia. sortear 2 posições randômicamente e troca-las.
faça isso um número de vezes proporcional ao número de elementos que vc tem. se ficar ruim, testa alterar a sequencia o dobro de vezes. se continuar ruim testa com o quadrado.
Adolfo_Rodrigues
A mega sena acumulou?? hehehe
joao.ramos
eu ja tentei fazer com um arrey, mas nao da certo!
outra coisa, esse vetor ja é predefinido, tendo por objetivo por os valores e fazer essa comparação para na hora da exibição não repetir os valores.
a mega sena nao acumulou esse programa eh pro meu chefe, que ele eh viciado em jogo de loteria.
ai quem se fode pra trab., estudar, resolver os problemas da vida sou eu e nao o desoculpado.
aew…
FredMP
Bom… vc poderia jogar o resultado de cada sorteio em um conjunto (que não aceita repetições) e verificar o tamanho até que seja igual a 6 e então exibir o resultado. Tipo isso:
java.util.Set<Integer> numeros = new java.util.TreeSet<Integer>();
while (numeros.size() < 6) {
numeros.add(new Integer(new Random().nextInt(60) + 1));
}
System.out.println(numeros);
Quando ganhar na mega-sena não esquece dos amigos do GUJ hein!!
LPJava
vc pode usar uma dessas classes da interface Set:
HashSet,LinkedhashSet, TreeSet.
Eles nao aceita valores repetidos!!
rolemberg
cara faz um for de 1 a 6 e para preencher o array e sempre valide o numero perguntando se é igual ao anterior…se for igual gere o numero novamente…
vlw
joao.ramos
sim, eu sei que pode se fazer isso, implementar um arrey, sorteia um valor, e os que sao sorteados a seguir vao sendo comparados.
eu ja tentei fazer isso, mas nao consegui, e por isso estou aqui.
o prazo que eu estipulei a ele ja ta chegando e nao to conseguindo e to apelando aqui no guj.
se possivel ponha o codigo aqui.
obrigado!
marcushlm
ja testou o código do FredMP acima?
java.util.Set<Integer> numeros = new java.util.TreeSet<Integer>();
while (numeros.size() < 6) {
numeros.add(new Integer(new Random().nextInt(60) + 1));
}
System.out.println(numeros);
joao.ramos
testei e ta rodando.
ate agora nao repetiu nenhum numero.
valeu ai galera, quando eu ganhar dou uma merrequinha pra vcs!