Sorteio com restrições

1 resposta
F

Estou com uma duvida, como fazer para que meu codigo que sorteia numeros de 1 a 13 sortei no maximo 4 vezes cada numero, assim:
1 1 1 1
2 2 2 2
3 3 3 3

Os números não precisão ficar em ordem o importante é que apareçam 4 vezes.

import java.util.*;
public class Principal {
		
	/**
	 * @param args
	 */
	public static void main(String[] args) {

		
			Random r = new Random () ;
			int aux = ' ';
			
			int numeros[] = new int [52];//numero total de termos
			int i = 0;
			
			while( i < numeros.length){
			  final int H = 14 ; // sorteia entre 1 e 13
			  final int L = 1 ;
			  aux = (int) ((r.nextDouble() * (H - L)) + L);
			  
			  numeros[i] = aux;
			  i++;

			  }//fim if
			 
			
			}//fim while
		

			
			
			//imprime ps numeros
			for(int j = 0; j < numeros.length; j++){
				
				System.out.println("["+j+"] = "+numeros[j]);
				
			}
	}

}

O problema é que esse codigo não limita a quantidade de aparições do numero, sendo que em sorteio possa aparecer 13 em todas as posições do vetor.
Alguma dica para eu poder arrumar meu codigo???
Valeu…

1 Resposta

J

Faz um validador, no final da rotina, verificando se possui mais de 4 números. Caso possua, deleta esta ocorrência e sorteia ela denovo!

Não é muito xique, mas funciona.

Criado 20 de setembro de 2009
Ultima resposta 20 de set. de 2009
Respostas 1
Participantes 2