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 :

Tirage aléatoire entre 1 et N


Sujet :

C#

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 31
    Points : 11
    Points
    11
    Par défaut Tirage aléatoire entre 1 et N
    Bonjour,

    Je souhaite développer une petite application pour un club de sport.
    L'utilisateur rentre le nombre d'équipes participant à la compétition.
    Et je dois déterminer de façon aléatoire la composition des différents matchs.

    Mon problème est que les nombres aléatoires ne sont pas forcemment différents, je m'explique :

    Si au premier tirage j'obtiens équipe 1 contre équipe 7, au deuxième tirage, je peux très bien avoir équipe 7 contre équipe 5.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    int i = int.Parse(TxtNbreParticipants.Text);
    for (int j = 1; j < i + 1; j++)
    {
         Random alea = new Random();
         MessageBox.Show(alea.Next(1, i).ToString());
    }
    Y-a-t'il une méthode simple pour faire ça ou dois-je faire des cascades de if pour contrôler ??

    Merci pour vos réponses.

    @+

    Thomas

  2. #2
    Membre confirmé Avatar de jacky01
    Profil pro
    Développeur .NET
    Inscrit en
    Juin 2007
    Messages
    537
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2007
    Messages : 537
    Points : 527
    Points
    527
    Par défaut
    Salut,
    Pour ma part je ferais comme toi et à chaque tiage tu met l'équipe tiré dans un tableau ou un enum et au tirage suivant tu vérifie si l'équipe tiré n'est pas déja présente dans tableau sinon tu refait un tirage.

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 31
    Points : 11
    Points
    11
    Par défaut
    Oui ça peut être une solution.
    Je vais tester.
    Merci pour le conseil.

    @+

  4. #4
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    Tu te fais une liste d'équipe et tu génères aléatoirement les index des équipes que tu tires au sort (nombre entre 0 et la taille de la liste - 1). Ensuite tu retires ces équipes de la liste, de manière à ne pas le tirer de nouveau, et tu recommences le tirage avec les équipes restantes.

  5. #5
    Membre confirmé Avatar de MetalGeek
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 412
    Points : 513
    Points
    513
    Par défaut
    Salut,
    j'a déjà eu le même problème.
    Créé un objet Random EN DEHORS de ta boucle et utilise la méthode random.Next ou random.NextDouble + garder une référence des équipes déjà tirées, selon les solutions citées plus haut.

Discussions similaires

  1. Tirage aléatoire d'un nombre entre 0 et 100
    Par parano dans le forum C++
    Réponses: 7
    Dernier message: 05/03/2007, 14h17
  2. tirage aléatoire
    Par uloaccess dans le forum Access
    Réponses: 10
    Dernier message: 22/02/2006, 18h02
  3. Tirage aléatoire dans une base donnée
    Par leloup84 dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 30/01/2006, 16h13
  4. Eviter deux nombres identiques dans un tirage aléatoire
    Par moon tiger dans le forum Pascal
    Réponses: 5
    Dernier message: 25/11/2002, 09h57
  5. Générer un nombre aléatoire entre 0 et 1 (INCLUS !!!)
    Par haypo dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 22/08/2002, 16h30

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