Array

5 respostas
J
Preciso preencher um ARRAY com números

Ex;

int quantJogador = 5;

int[] nv1 = new int[5*3];

O aray precisar ter 3 casas com cada número(3 com 1, 3 com 2…).

Esse preenche, porém pode vir 4 casas com um mesmo número, e o meu objetivo são 3 casas com cada número.

for(int i = 0; i < nv1.length;i++){ do{ sorteio = 1 + (int)(Math.random() *quantJogador); nv1[i] = new Casa(sorteio,1); }while(nv1[i] == null); }

5 Respostas

Ev3rton

Olá,

Eu faria assim:

int[] array = new int[5*3];
int index = 1;
int aux = 0;
for(int i = 0; i < array.length; i++) {
    array[i] = index;
    aux++;

    if(aux >= 3) {
        aux = 0;
        index++;
    }
}
J
Ev3rton:
Olá, Eu faria assim:
int[] array = new int[5*3];
int index = 1;
int aux = 0;
for(int i = 0; i < array.length; i++) {
    array[i] = index;
    aux++;

    if(aux >= 3) {
        aux = 0;
        index++;
    }
}
int sorteio = 1 + (int)(Math.random() *quantJogador);

Só que preciso que array[i] = (sorteio);

E não array[i] = um número definido;

Onde sorteio seria um número de 1 a quantJogador(que no caso é 5).

Preciso que seja sorteado...

Se não sempre seria assim, 1 - 1 - 1 - 2 - 2 - 2 - 3 - 3 - 3 ( sequencial )
E preciso que seja assim, 1 - 3 - 1 - 2 - 3 - 1 - 2 - 2 - 3 ( sorteado )

J

UP.
Ainda estou com essa dúvida, se alguem souber…

B
int[] array = new int[5*3];  
	int aux = 0;  
	Random random = new Random();  
	for(int i = 0; i < array.length; i++) {  
			
	    array[i] =  random.nextInt(5) + 1 ;  
	    aux++;
	 
		    
	}

Se o sorteio é de 1 a 5, acho que é isso.

Ev3rton

Olá,

Para você gerar números aleatórios de 1 a 5 e que repitam no máximo 3 vezes, ficaria assim:

int[] array = new int[5*3];  
int index = 0; 
while(index < array.length) {
    int rand = Math.abs(new Random().nextInt()) % 5 + 1;
    int ocorrencias = 0;
    for(int j = 0; j < array.length; j++) {
        if(array[j] == rand) {
            ocorrencias++;
        }
    }
    if(ocorrencias < 3) {
        array[index] = rand;
        index++;
    }
}

[ ]'s

Criado 29 de novembro de 2011
Ultima resposta 30 de nov. de 2011
Respostas 5
Participantes 3