La fonction aléatoire

sahnounm91 Messages postés 16 Date d'inscription   Statut Membre Dernière intervention   -  
walidovich_85 Messages postés 608 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

j'ai deux tableaux, je veux remplir l'un des deux à partir de l'autre de tel façon j'ai choisi un élément d'une manière aléatoire de 1er tableau et le mettre dans le deuxième sachant que un élément sélectionné une seul fois (random sans doublons )
quelqu'un peut m'aider sil vous plait
voilà la portion de code que je l'implémenté
public class TEST {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		double[] CENTRES=new double[3];
		double[]DONNEES=new double[6];
		for(int i=0;i<DONNEES.length;i++)
		{DONNEES[i]=i;}
		boolean existe=false;
		int i=0;
		while((existe==false)&&(i<CENTRES.length))
		{
			int r=(int) (Math.random()*DONNEES.length);
			if(CENTRES[i]==r)
			{
				existe=true;
				
			}
			else{
			CENTRES[i]=DONNEES[r];
			i++;}
			
			System.out.println(CENTRES[i]);
		}}
	
}




A voir également:

1 réponse

walidovich_85 Messages postés 608 Date d'inscription   Statut Membre Dernière intervention   73
 
Bonsoir,

Si j'ai bien compris le problème, alors vous voulez copier le contenu du 1ier tableau dans le 2ieme d"un manière aléatoire sans copier un élément en double.

Si c le cas, alors je propose la solution suivante:
import java.util.Random;

public class Main1
{
    public static void main(String[] args)
    {
	// Initialiser les deux tableaux avec des valeurs determinees
	int source[] = new int[5];
	int destination[] = new int[10];
	for (int i = 0; i < source.length; i++)
	{
	    source[i] = i + 1;
	}
	for (int i = 0; i < destination.length; i++)
	{
	    destination[i] = 0;
	}
	// Choisir un element du 1ier tableau et le placer dans le 2ieme
	for (int i = 0; i < source.length; i++)
	{
	    int j = new Random().nextInt(destination.length);
	    while (destination[j] != 0)
	    {
		j = new Random().nextInt(destination.length);
	    }
	    destination[j] = source[i];
	}
	// Afficher les deux tableaux:
	System.out.println("Premier tableau");
	for (int i = 0; i < source.length; i++)
	{
	    System.out.print(source[i] + " ");
	}
	System.out.println("");
	System.out.println("Deuxieme tableau");
	for (int i = 0; i < destination.length; i++)
	{
	    System.out.print(destination[i] + " ");
	}
    }

}


J'ai utilisé les 0 comme indicateurs de l'absence de valeur dans le tableau de destination, et j'ai utiliser la fonction Random pour choisir un index aléatoire.
et voila un exemple de résultat:

Premier tableau
1 2 3 4 5 
Deuxieme tableau
0 4 1 5 0 3 2 0 0 0


Bonne chance
0