Valeurs différentes dans un tableau [Résolu]

Psyc0s 24 Messages postés mercredi 1 janvier 2003Date d'inscription 3 mai 2006 Dernière intervention - 3 mai 2006 à 03:56 - Dernière réponse : gyzmo222 66 Messages postés lundi 27 juin 2005Date d'inscription 2 juin 2006 Dernière intervention
- 3 mai 2006 à 08:48
Bonjour,

J'ai en tableau integer de 24 entrés. Je veux mettre un nombre au hazard dans chaque entré mais de façon à avoir aucune valeur qui se répète.

Mon code ressemble à ça:

            Random random = new Random();

            int i;

            for (i = 0; i <= 24; i++)
            {
                iTable[i] = random.Next(iNumrows);
                for (int y = 0; y <= i; y++)
                {
                    if (iTable[i] == iTable[y])
                       iTable[i] = random.Next(iNumrows);
                }
            }

Le problème est que cette boucle vérifie seulement pour la valeur en cour et que la nouvelle valeur peut être identique à une autre déja présente dans le tableau.

Merci

[:)]
Afficher la suite 

3 réponses

Répondre au sujet
taoetc 346 Messages postés lundi 8 septembre 2003Date d'inscription 3 septembre 2007 Dernière intervention - 3 mai 2006 à 08:42
+3
Utile
Random random = new Random();
bool tableauVerif = false;
bool valeurDejaPresente = false;
            int i;

            for (i = 0; i <= 24; i++)
            {
               tableauVerif= false;
               valeurDejaPresente = false;
               
                while (tableauVerif == false)
               {
                       for (int y = 0; y <= i; y++)
                      {
                          if (iTable[i] == iTable[y])
                           {//si je trouve la valeur alors je sors de la boucle
                                valeurDejaPresente = true;
                                break;
                          }
                       }
                       if(valeurDejaPresente==true)
                       {//si la valeur est déjà presente alors j'en prend une autre
                            iTable[i] = random.Next(iNumrows);
                            valeurDejaPresente = false;
                       }
                       else // j'ai vérifié toutes les valeurs
                          tableauVerif= true;                           
                }
            }




Be happy , by
Tao
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de taoetc
gyzmo222 66 Messages postés lundi 27 juin 2005Date d'inscription 2 juin 2006 Dernière intervention - 3 mai 2006 à 08:47
0
Utile
J'ai pas testé mais ca a le mérite de m'avoir un peu réveillé, j'espère que ca fonctionnera :p

Random random = new Random();

            int i;  //index du tableau à remplir
             int trouv=0;  //sert à indiquer que le nombre est trouvé
             int k=0;  //nombre random            for (i 0; i < 24; i++) //pas de car le 0 compte et ca ferait 25entrées
            {
             trouv=0;  //remettre trouv à 0 avant la boucle pour chaque index du tableau
             while (trouv == 0) //tant qu'il n'a pas trouvé le meme nombre il boucle
                {
                k = random.Next(iNumrows);  //mise d'un nombre dans k
                for (int y = 0; y < i; y++)  //parcours du tableau déja rempli (donc pas d'égal car la case i n'est pas encore remplie)
                {
                    if (iTable[y] == k)  // si le nombre du tableau vaut le nombre random
                       {trouv=1;}  //il l'a trouvé
                }
             if (trouv == 0)  //si il n'a rien trouvé
          { iTable[i] = k; trouv=1;} //on met ce nombre unique dans le tableau et on met trouv a 1 pour sortir de la boucle
             }
            }
Commenter la réponse de gyzmo222
gyzmo222 66 Messages postés lundi 27 juin 2005Date d'inscription 2 juin 2006 Dernière intervention - 3 mai 2006 à 08:48
0
Utile
Ho un plus rapide, je vais me recoucher :D
Commenter la réponse de gyzmo222

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.