IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

génération aléatoire avec un et un seul doublon


Sujet :

C

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2011
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 3
    Points : 2
    Points
    2
    Par défaut génération aléatoire avec un et un seul doublon
    salut;
    je veux générer aléatoirement une combinaison de 6 chiffres parmi 10 tout en veillant à avoir un et un seul doublon
    j'ai besoin de vos idées pour programmer le code
    merci d'avance

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Points : 1 750
    Points
    1 750
    Par défaut
    Salut

    Il te suffit de remplir un tableau, qui contiendra tes numéros générés aléatoirement.

    Au moment où tu génères un nombre aléatoire, au fur et à mesure, avant de le rajouter dans le tableau, tu vérifies s'il n'est pas déjà présent dans le tableau, via une boucle. Il y a deux options :
    * S'il est déjà présent et que tu as déjà mémorisé un doublon (de ce chiffre ou d'un autre), tu génères un autre chiffre et tu testes à nouveau.
    * S'il est déjà présent et que tu n'as pas encore eu de doublon, tu le rajoutes dans le tableau et tu mémorises que tu as un doublon.

    Pour mémoriser si tu as déjà un doublon ou non, il suffit d'utiliser une variable, que tu initialiseras à une valeur donnée (0 par exemple).

    Si, une fois le tableau totalement rempli, tu n'as aucun doublon, tu pioches un nombre au pif dans le tableau et tu le copies à un autre emplacement du tableau (au pif, et en vérifiant que ce n'est pas au même endroit).

  3. #3
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 515
    Points : 2 505
    Points
    2 505
    Par défaut
    - Tu fais un tirage sans remise de 5 chiffres parmi les 10. Tu te retrouves avec un tableau A de 6 éléments dont les 5 premiers sont initialisés.
    - Tu tires un premier indice i entre 0 et 4. C'est l'indice dans A de l'élément qui sera dupliqué.
    - Tu tires un deuxième indice j entre 0 et 4. Si j >= i, alors j += 1. C'est l'indice dans A où tu va placer le doublon.
    - Tu places le doublon en faisant A[5] = A[j] puis A[j] = A[i]

    Pour faire un tirage sans remise de 5 chiffres parmi 10 (première étape), tu te fais un tableau T de 10 éléments dans lequel tu places des 10 chiffres. Tu tires un indice i entre 0 et 9. Tu met T[i] dans A[1], et tu intervertis T[i] et T[9]. Tu tires un nouvel indice i entre 0 et 8. Tu met T[i] dans A[1], et tu intervertis T[i] et T[8]. Tu recommence jusqu'a avoir tiré ainsi 5 chiffres uniques.

Discussions similaires

  1. Réponses: 10
    Dernier message: 12/12/2011, 13h24
  2. Réponses: 6
    Dernier message: 11/10/2011, 18h23
  3. Réponses: 0
    Dernier message: 07/09/2011, 17h08
  4. [AC-2007] doublons dans génération aléatoire
    Par fbu78 dans le forum VBA Access
    Réponses: 4
    Dernier message: 21/10/2010, 16h23
  5. génération aléatoire avec flamerobin
    Par looping dans le forum Outils
    Réponses: 0
    Dernier message: 30/11/2008, 15h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo