Nombre aléatoire unique

Nombre aléatoire unique - C#/.NET managed - Programmation

Marsh Posté le 19-11-2006 à 19:54:10    

Salut à tous !

 

Je viens sur ce forum car j'ai un petit soucis avec la fonction "Random" en C#.

 

En gros, je souhaite 10 nombres aléatoires compris entre 1 et 100 mais je ne veux pas de double nombre. Une fois qu'un nombre a été tiré au sort, il ne doit plus être tiré au sort.

 
Code :
  1. numero.Add(aleat.Next(1, 100));
  2. for (i = 0; i <= 9; i++)
  3. {
  4.     int a = aleat.Next(1, 100);
  5.     while (numero[i] == a)
  6.     {
  7.         a = aleat.Next(1, 100);
  8.     }
  9.      numero.Add(a);
  10. }
 

Le problème vient au niveau du tant que. Comment je pourrais faire pour vérifier que le nombre aléatoire n'a pas déja été tiré au sort?

 

Merci de m'aider :)


Message édité par cvex le 19-11-2006 à 20:10:47

---------------
http://forum.hardware.fr/hardwaref [...] 1293-1.htm
Reply

Marsh Posté le 19-11-2006 à 19:54:10   

Reply

Marsh Posté le 19-11-2006 à 20:05:20    

Tu remplis une liste avec les nombres de 1 à 100.
 
Tu choisis un des éléments de cette liste au hasard, ça te sort un nombre N. Tu retires cet élément de la liste (il reste donc 99 valeurs).
 
Tu recommences le tirage aléatoire tant que tu as besoin de valeur en supprimant la valeur tirée de la liste à chaque fois.
 
Voilà, c'est une méthode, il y en a peut-être d'autres plus rapide je sais pas mais bon ^^

Reply

Marsh Posté le 21-11-2006 à 16:16:42    

grillaid :/
 
(ouais, je sais, chuis super réactif)

Reply

Marsh Posté le 07-08-2008 à 11:22:33    

tu fous tes dix entiers dans un tableau par exemple tab[] (jsuis inspiré)
ensuite tu prend un entier i pour avancer dans le tableau
esuite à chaque passage de boucle faut que tu regarde si toutes les valeur d'avant ne sont pas égales à la valeur aléatoire (donc une double boucle) ça fait une complexité carré donc pas conseillé si t'utilise trop de nombre

Reply

Marsh Posté le 07-08-2008 à 11:39:14    

Déterrage de topic vieux de deux ans, pour proposer une solution pourrie :/

Reply

Marsh Posté le 07-08-2008 à 23:55:19    

Remarque je trouve pas de shuffle dans la lib standard. bizarre.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed