Função gera numeros Randomicos

OI GENTE…SURGIU UMA DÚVIDA…SE ALGUEM PUDER ME AJUDAR…FICO AGRADECIDA… PRECISO FORMAR UMA MATRIZ(9X9) COM NUMEROS RANDOMICOS (EM JAVA)…COMO POSSO FAVER ISSO??

Já deste uma lida na documentação do Java alguma vez na vida? Se tivesse, não faria tal pergunta.

Até!

Obs.: É de péssimo tom escrever todo o texto em maiúsculas.

Utilize o método random da class Math

Math.random();

O math.random() tem um comportamento ruim.

Use o objeto Random().

Por exemplo:

int matriz = new int[9][9]; Random random = new Random(); for (int i = 0; i < 9; i++) for (int j = 0; j < 9; j++) matriz[i][j] = random.nextInt(100); //Número de 0 até 99

Fiz tudo pra vc, agora fica por sua conta implementar para evitar numeros repetidos dentro da Matriz.

[code]// Este exemplo gera uma Matriz Quadrada.

public class Matriz {
public static void main(String[] args) {
int tamanhoMatriz = 81; // 9x9=81
int matriz[] = new int[tamanhoMatriz];
geraMatriz(matriz, tamanhoMatriz);
imprimir(matriz, tamanhoMatriz);
}

public static int[] geraMatriz(int[] matriz, int tamanhoMatriz) {
	for (int i = 0; i < tamanhoMatriz; i++) {
		matriz[i] = (int) (Math.random() * 30) + 1; // Possibilidades 1 ate 30
	}
	return matriz;
}

private static void imprimir(int[] matriz, int tamanhoMatriz) {
	int c = 0;
	for (int i = 0; i < tamanhoMatriz; i++) {
		if (c == i) {
			if (c == 0) {
				c = c + 9;
			} else {
				System.out.println(); // Próxima linha a cada 9 valores
				c = c + 9;
			}
		}
		if (matriz[i] < 10) {
			System.out.print("[0" + matriz[i] + "]");
		} else {
			System.out.print("[" + matriz[i] + "]");
		}
	}
}

}[/code]

Opa Vini, como assim tem um comportamento ruim?

vlw

Dá uma lida aqui:
http://www.leepoint.net/notes-java/algorithms/random/random-api.html

Agradeço pelas respostas!!!..

Não é que o método tenha um comportamento ruim. Para doubles, tem um ótimo comportamento. Entretanto, o nextInt() tem um comportamento melhor para inteiros, além de já convenientemente retornar um número no intervalo que você quiser.

Outro problema que ocorre é quando o algoritmo é usado de maneira errada. E existem algumas formas de se fazer isso. Uma delas é ao arredondar o número ao invés de truncar. Outra questão é que existe perda de precisão ao se multiplicar números.

É meio complicado explicar em detalhes aqui sem entrar em alguma matemática, mas você pode ver uma boa diferenciação entre algoritmos de números pseudo-aleatórios que trabalham com double e ints no livro Applied Criptography, do Bruce Schneier.

obrigado pela explicação…