kyokosan
Messages postés41Date d'inscriptiondimanche 28 octobre 2007StatutMembreDernière intervention10 avril 2008
-
20 janv. 2008 à 22:51
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013
-
31 janv. 2008 à 13:32
salut
Je voudrais générer un nombre aléatoire entre 1 et 10, mais j'aimerais que ce nombre ne se génère qu'une seule fois
donc j'aurais 9 nombres différents générés aléatoirement
est ce que quelq'un pourrait m'aider?
merci
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 21 janv. 2008 à 07:07
Salut,
Algo classique : remplit une liste avec tes dix nombres.
Lors du premier tirage (entre 0 et 9), tu prends le nombre à la Xième place, et tu retire le chiffre de la liste.
Lors du deuxième tirage (entre 0 et 8), tu prends le nombre à la Xième place, et tu retire le chiffre de la liste.
Lors du troisième tirage (entre 0 et 7)...
Ainsi tu obtiens tes 10 chiffres tirés dans un ordre aléatoire et ils sont tous différents.
______________________________________
DarK Sidious
super_toinou
Messages postés764Date d'inscriptionmardi 25 mai 2004StatutMembreDernière intervention 8 mars 20116 21 janv. 2008 à 17:49
Hello,
en fait il suffit de prendre le problème à l'envers.
Génére une liste qui contienne tes chiffres de 1 à 10.
Et quand tu le récupère tu fais un
//tu récupère ton int
int index = random.nextInt(list.size())
list.get(index);
//et après tu vire le chiffre vu que tu l as déjà utilisé
list.remove(index);
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 23 janv. 2008 à 21:14
Salut,
Si tu dois tirer 10 nombres aléatoires entre 1 et 10, je vois pas du tout ce que viens faire le nombre entré par l'utilisateur !
C'est l'algo le plus classique et le plus connu pour tirer tout les nombres d'un ensemble connu de façon aléatoire et unique !
______________________________________
DarK Sidious
kyokosan
Messages postés41Date d'inscriptiondimanche 28 octobre 2007StatutMembreDernière intervention10 avril 2008 26 janv. 2008 à 20:39
Salut
voici une partie de mon code ''ou je
génère un nombre aléatoire entre 0 et nb_req, mais j'aimerais que ce nombre ne se génère qu'une seule fois ", mais mon problème c'est que malgré que je le retire il le régénère <?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
pourriez vous jeter un coup d’œil sur mon code, peut être que je me suis trompée quelque part
ArrayList L=new ArrayList(nb_req);// nb_req introduit pas l'user
Random h=new Random();
for (int i=0;i<nb_req;i++)
{L.add(new Integer (i));} // je cré ma liste
for (int i=0;i<10;i++)
{int rem=Math.abs(h.nextInt((int)L.size()));
System.out.println(rem);//alors là il m'affiche plus qu'une fois l'élément qui est sensé être supprimé
f[rem]=i+1;
L.remove(rem);}
merci
cs_laurent1024
Messages postés987Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention30 août 201225 26 janv. 2008 à 20:58
int rem=Math.abs(h.nextInt((int)L.size()));
tu recuperes un indice dans ton tableau.
il faut faire System.out.println(l.get(rem)); pour avoir la valeur
et ensuite
f[l.get(rem)] = i+1;
L.remove(rem);
kyokosan
Messages postés41Date d'inscriptiondimanche 28 octobre 2007StatutMembreDernière intervention10 avril 2008 31 janv. 2008 à 00:45
salut
j'aimerais bien que vous m'aidiez pour rendre un objet extrait d'une liste en un entier que je peux l'tiliser pour le calcul
j'ai essayé avec (int)l.get(rem) et l.get(rem).intValue et ça n'a rien donné
partie du code:
int rem=Math.abs(h.nextInt((int)L.size()));
tu recuperes un indice dans ton tableau.
il faut faire System.out.println(l.get(rem)); pour avoir la valeur
f[l.get(rem)] = i+1;// le l.get(rem) est un objet moi je veux un entier
L.remove(rem);
cs_laurent1024
Messages postés987Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention30 août 201225 31 janv. 2008 à 09:11
Bonjour.
Normalement
f[l.get(rem).intValue()] doit fonctionner normalement.
Quel genre d'erreurs as tu ? Erreur de compilation ? Plantage à l'exectution (exception ?) ?
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 31 janv. 2008 à 13:32
Salut,
Utilise les generics, comme cà plus de problème :
ArrayList L = new ArrayList();
Plutôt que :
ArrayList L = new ArrayList();
Qui t'oblige alors à caster les éléments de ta liste, et qui est bien plus dangeureuse, car tu peux lui ajouter n'importe quel type d'objet !
______________________________________
DarK Sidious