gigi00
Messages postés23Date d'inscriptionmardi 8 janvier 2008StatutMembreDernière intervention26 juin 2010
-
11 févr. 2008 à 19:22
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 2013
-
11 févr. 2008 à 21:14
bonjour
je veux que ce programme rempli aleatoirement un tableau de 9 saans repition mais j ai un probleme au niveau des colonnes
import java.util.Vector.*;
import java.util.*;
public class gfdcbg {
public static void main(String[] args) {
int i, j;
int [][]tab;
Vector v=new Vector();
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 11 févr. 2008 à 21:14
Salut:
La façon avec laquelle tu généres la séquence des nombre aléatoires n'est pas déterministe.
Tu peux en revanche t'inspirer d'un petit théorème en mathématiques celui des Convexes.
Et du fait que tout intervalle est un convexe.
Soit l'intervalle [a, b] telque a < b, pour toute x appartenant à [a, b], il existe c appartenant à [0, 1] telque x peut s'écrire sous la forme x = c*a + (1-c)*b
Ceci donne en terme de programme:
int[][] matrix = new int[3][3];
for (int i = 0; i < 3; ++i) {
for(int j = 0; j < 3; ++j) {
matrix[i][j] = 3*i + j;
}
}
Random random = new Random();
random.setSeed(System.currentTimeMillis());
for (int i = 0; i < 3; ++i) {
for(int j = 0; j < 3; ++j) {
int k = (int)(i*3 + j + random.nextDouble()*(9 - 3*i -j));
int tmp = matrix[i][j];
matrix[i][j] = matrix[k/3][k%3];
matrix[k/3][k%3] = tmp;
}
}
for (int i = 0; i < 3; ++i) {
for(int j = 0; j < 3; ++j) {
System.out.print(matrix[i][j] + "\t");
}
System.out.println();
}