Fórum Numeros Aleatorios Sem Repetição #569244
09/04/2009
:oops:
Estou tentando fazer um programa que gere numeros aleatorios para Mega Sena:
Por exemplo: quero que ele gere 30 Cartelas. Ele tem que gerar 30 sequencia de 6 numeros entre 1 e 60.
Até ai tudo bem. Fiz o Programa que gera tudo isto beleza, só que tem um detalhe, as vezes ele gera numero repedido. Ex:
02 - 10 - 20 - 32 - 32 - 45
Existe algum jeito de fazer com que não repita atravez de comando ou tenho que tratar isto na mão com algum código extenso??
Será que nestas 30 sequencias vai ter alguma que vai repetir??
Como eu trato isto??
Alguem pode me ajudar???
Desde já Agradeço!!!!!
Posts
09/04/2009
Vitor Pamplona
Sugiro fazer o seguinte...
Ao fazer cada cartela, compare o número sorteado para ver se não está na cartela corrente.
Após todas as cartelas geradas, compare todas elas para ver se não há cartelas iguais
:!:
09/04/2009
Vitor Pamplona
Vc vai ter um vetor pra armazenar os numeros, ok ?
inicie ele com todas as posicoes -1 para nao dar problema... ai voce gera um numero aleatorio e armazena... a partir do segundo que voce gerar, vc pega e varre o vetor inteiro vendo se ele ja esta la, se estiver, anule e gere outro, se nao estiver, BINGO, numero novo =P
Tranquilo né?
Não se esqueca do [color=red:f4219cf418]JavaFREE[/color:f4219cf418] se por fim, vc ganhar da Mega Sena hein! =P
eheheheheh
Abraços!
Vc pode guardar os valores já sorteados em uma ArraList, e ir comparando se o número já saio !!!!!
09/04/2009
Vitor Pamplona
[quote="lucastex"]Vc vai ter um vetor pra armazenar os numeros, ok ?
inicie ele com todas as posicoes -1 para nao dar problema... ai voce gera um numero aleatorio e armazena... a partir do segundo que voce gerar, vc pega e varre o vetor inteiro vendo se ele ja esta la, se estiver, anule e gere outro, se nao estiver, BINGO, numero novo =P
Tranquilo né?
Não se esqueca do [color=red:7280aaee67]JavaFREE[/color:7280aaee67] se por fim, vc ganhar da Mega Sena hein! =P
eheheheheh
Abraços!
Sendo assim dah para usar uma estrutura do tipo Map, evitando itens duplicados :)
Aih nem precisa fazer a comparação
:!:
Eu estou armazanando em um vetor
Como seria essa estrutura MAP
09/04/2009
Vitor Pamplona
Map é uma estrutura de dados que trabalha com chaves (no caso o teu número sorteado).
Caso vc tente incluir um item com a mesma chave que outro, ela substitui o valor deste item.
Normalmente é usado quando vc sabe todas as chaves, mas para o teu caso pode servir.
De uma olhada na API : http://java.sun.com/j2se/1.4.2/docs/api/index.html
Construtor
HashMap map = new HashMap();
Adicionar na lista
map.put( número, número )
Retornar os valores (Usar Iterador)
Iterator i = map.keySet().iterator();
while (i.hasNext()) {
numero = (String) i.next();
}
Nao use Map pra isso....
eh besteira... pq? pq vc tah armazenando apenas um dado, e nao fazendo um par de Key-Value...
sorteie os numeros, jogando pra dentro de um array primitivo... use o metodo binarySearch da classe Arrays para saber se um numero N sorteado jah nao consta no array... done. :!:
Por que vc naum utiliza um Set???
Defina um tamanho para o campo e adicione seus dados até preencher com a quantidade...
Set valores = new HashSet();
while (valores.size() < 10) {
int x = (int) (100 * Math.random());
valores.add(new Integer(x));
}
Assim já utiliza o algoritmos do próprio Set e lembrando que o Set não permite repetição
:!: :!: :!: :!: :!:
nao creio q usar Set (HashSet) nesse caso venha a ter vantagens... :( axo q um int[] jah basta... bom, vai da escolha da solucao agora... :)
Amigos, valeu pela ajuda...
Agora eu acho consegui fazer o negocio funcionar
Só falta eu conseguir ganhar...
Ou seja impossivel
Alguem sabe algo sobre Clusters de Maqs. Linux???
Quero implementar bem este programa e coloca-lo pra
rodar em um cluster ja que imagino que vai demorar muito
se eu for gerar 20.000.000 de cartelas...
Pra falar a verdade acho que eu nunca vou jogar, só quero fazer este programa por fazer e roda-lo em um cluster...
09/04/2009
Jean Rodrigues
[quote="mlcneto"]
Alguem sabe algo sobre Clusters de Maqs. Linux???
http://www.clubedohardware.com.br
Aqui vc encontra sobre clusters com máq. Linux :!: