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 :

Nombre aléatoire parmi une plage de valeurs non continues


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2
    Par défaut Nombre aléatoire parmi une plage de valeurs non continues
    Bonjour,

    J'ai réalisé un programme du tirage du loto, comme le système "Flash" avec tirage de nombres aléatoires
    entre 1 et 49.

    je mets ici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
     
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading;
     
    namespace Loto
    {
        class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine("LE LOTO\n");
                //int nb = 0;
     
     
     
                int nbtirage = 0;
                bool nbok = false;
                const int nb = 6;
                int[] tabNb = { 2, 67, 69 };
                DateTime date = DateTime.Now;
                Random nbAleatoire = new Random();
                Console.WriteLine("Tirage du " + date);
     
                for (int i = 0; i <= nb - 1; i++)
                {
                    while (!nbok)
                    {
                        nbtirage = tabNb[nbAleatoire.nextDouble(tabNb.length)];
                        nbok = nbExist(nbtirage, i, tabNb);
                    }
                    nbok = false;
                    tabNb[i] = nbtirage;
                }
                Console.WriteLine("Les 6 chiffres dans l'ordre du tirage :\n");
                foreach (int nbAffiche in tabNb)
                {
     
                    Console.Write(nbAffiche + "   ");
                }
                Array.Sort(tabNb);
                Console.WriteLine("\n\nLes 6 chiffres triés :");
                foreach (int nbAffiche in tabNb)
                {
                    Console.Write(nbAffiche + "   ");
                }
                Console.Read();
            }
     
            static bool nbExist(int nb, int j, int[] tabNb)
            {
                for (int i = 0; i <= j; i++)
                {
                    if (tabNb[i] == nb)
                    {
                        return false;
                    }
                }
                return true;
            }
        }
    }
    Je cherche a faire le meme tirage mais en changeant uniquement les nombres aléatoires. je souhaiterais
    entrer en dur les chiffres,par exemple, les chiffres 14,20,30,32,35,45.., afin davoir un tirage
    par raport uniquement a ces chiffres.

    j'ai vu la methode lenght avec random, mais cela ne repond pas a mes atttente
    car il faut a priori donner une plage de nombres continu (qui se suivent).

    Merci de votre aide.

  2. #2
    Membre confirmé Avatar de zarohn
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 148
    Par défaut
    Salut,

    la methode lenght avec random, mais cela ne repond pas a mes atttente car il faut a priori donner une plage de nombres continu
    je pense que ce que tu peux faire c'est un tableau contenant tes éléments [14,20,30,32,35,45]
    et ensuite tu fais un random sur l'index du tableau. ici entre 0 et 5

  3. #3
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2
    Par défaut
    Merci de ta réponse rapide.

    Donc, en code ca modifie seulement cecla :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    int nbtirage = 0;
    bool nbok = false;
    const int nb = 6;
    int[] tabNb = { 2, 67, 69 };
    DateTime date = DateTime.Now;
    Random nbAleatoire = new Random();
    Console.WriteLine("Tirage du " + date);
    je remplace tabNB par mes chiffres[14,20,30,32,35,45]
    et ensuite je fais comment pourle random sur l'index du tableau. entre 0 et 5 par compris, désolé je débute.

    Merci bien

  4. #4
    Membre confirmé Avatar de zarohn
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 148
    Par défaut
    Je n'ai jamais fait de c# donc ce que je t'écris maintenant est du pseudo code, pour expliquer l'idée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int[] tabNb = { 2, 67, 69 };
    Random nbAleatoire = new Random(0, tabNb.length-1);
    unNbAuHasard = tabNb[nbAleatoire]
    en français :
    tu crée ton tableau avec tes éléments
    tu fais un random entre 0 et la taille de ton tableau
    tu accède a l'élément en faisant tab[indice]

    etc...

  5. #5
    Membre Expert
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Par défaut
    Dans l'idée c'est ça, je me permets juste d'apporter quelques précisions :

    La doc de Random sur MSDN : http://msdn.microsoft.com/fr-fr/libr...8VS.80%29.aspx

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    int[] tabNb = { 2, 67, 69 };
    Random rdm = new Random();
    Int32 nbAleatoire = rdm.Next(tabNb.length-1);
    unNbAuHasard = tabNb[nbAleatoire]
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

Discussions similaires

  1. Recherche parmi une plage de valeurs numériques
    Par Jeene dans le forum VBA Access
    Réponses: 2
    Dernier message: 27/02/2014, 15h58
  2. Réponses: 2
    Dernier message: 27/06/2013, 01h37
  3. Exécution lorsque une valeur change parmi une plage
    Par Janny dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/05/2009, 13h56
  4. Choisir un chiffre aléatoire parmi une liste
    Par djsbens dans le forum Général Java
    Réponses: 2
    Dernier message: 08/03/2006, 18h19
  5. [FLASH MX] Choisir un nombre aléatoire dans une liste
    Par grenatdu55 dans le forum Flash
    Réponses: 4
    Dernier message: 23/04/2005, 21h09

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