Random:Debutant

geekmtl Messages postés 23 Date d'inscription vendredi 16 septembre 2022 Statut Membre Dernière intervention 11 janvier 2023 - Modifié le 18 sept. 2022 à 20:53
Whismeril Messages postés 18640 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 2 octobre 2023 - 22 sept. 2022 à 08:11

Bonjour,

J'ai un souci avec un programme, je n'ai jamais fais de random mais j'ai fait ce qui suit à la suite de recherche 

voici mon sujet :

Faites un programme permettant de simuler des tirages de 6/49.

Dans un premier temps, demander à votre utilisateur le nombre de combinaisons que celui-ci désire (entre 10 à 200 combinaisons). Et générer et afficher les combinaisons de l’utilisateur.

Par la suite, faites générer la combinaison gagnante de 6 chiffres avec le chiffre complémentaire.

Enfin indiquer, les combinaisons gagnantes de l’utilisateur.

Voici le tableau des combinaisons qui ne donnent aucun gain :
 

  • 0 sur 6
  • 1 sur 6
  • 2 sur 6
     

Voici le tableau des combinaisons qui donnent des gains :

  • 3 sur 6
  • 3 sur 6 +
  • 4 sur 6
  • 4 sur 6 +
  • 5 sur 6
  • 5 sur 6 +
  • 6 sur 6
    namespace Program_6_49
    {
        internal class Program
        {
            static void Main(string[] args)
            {
                int nbr;
                int graine;
                Console.WriteLine("Entrer le nombre de combinaisons entre (10 et 200) que vous desirerz ");
                nbr =int.Parse(Console.ReadLine()); 
    
                Random random = new Random();
                Console.WriteLine(random.Next(10, 200).ToString());
    
                for(int i = 0; i < 20; i++)  
                    
                    Console.WriteLine(" " + nbr.ToString());    
    
                Console.ReadLine();
    
            }
        }
    }
    

A la fin de votre programme, sortez les statistiques indiquant le nombre de tirages et le nombre d’apparitions de chaque nombre a eu à l’intérieur des combinaisons gagnantes, ainsi que le % de combinaisons pour chaque famille de résultats.

si quelqu'un a une idée.

13 réponses

Whismeril Messages postés 18640 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 2 octobre 2023 629
18 sept. 2022 à 21:17

Bonsoir

Si j'ai bien compris les règles, cela ressemble au loto français.

Il y a d'abord un tirage de 6 numéros de 1 à 49 sans doublons.

Puis le tirage du numéro complémentaire (je n'ai pas trouvé l'intervalle, je n'ai pas cherché longtemps non plus...)

Tu as plein de choses à faire dans ton programme, il faut donc procéder par étape.

Pour moi la première serait la génération des tirages, puisque tu dois faire des séries (de 20 à 100) puis un tirage supplémentaire qui sera celui de référence.

Je te propose donc d'écrire une méthode qui retourne un tirage, que tu pourras appeler à plusieurs reprises.

La façon de retourner le tirage doit ter permettre par la suite de trouver les tirages "gagnants" et de faire des statistiques.

Il y a plusieurs façons de faire selon ce que tu as déjà appris ou pas


Quand j'étais petit, la mer Morte n'était que malade.
George Burns

0
geekmtl Messages postés 23 Date d'inscription vendredi 16 septembre 2022 Statut Membre Dernière intervention 11 janvier 2023 1
18 sept. 2022 à 23:12

Merci pour votre réactivité je vais voir ca et je vous reviens.

0
geekmtl Messages postés 23 Date d'inscription vendredi 16 septembre 2022 Statut Membre Dernière intervention 11 janvier 2023 1 > geekmtl Messages postés 23 Date d'inscription vendredi 16 septembre 2022 Statut Membre Dernière intervention 11 janvier 2023
19 sept. 2022 à 00:45

voici ma fonction, je sais si elle est bonne car elle me donne un chiffre plus une serie du nombre que j'entre.

  static void Main(string[] args)
        {

            int n = numeroHasard();
            Console.WriteLine("  {0}", n);
            Console.ReadLine();

        }
            public static int numeroHasard()

            {

            int nbr;
            int graine;
            Console.WriteLine("Entrer le nombre de combinaisons entre (10 et 200) que vous desirerz ");
            nbr = int.Parse(Console.ReadLine());

            Random random = new Random();
            Console.WriteLine(random.Next(10, 200).ToString());

            for (int i = 0; i < 20; i++)

                Console.WriteLine(" " + nbr.ToString());
            return nbr; 

            }

           
    }
}
0
Whismeril Messages postés 18640 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 2 octobre 2023 629
19 sept. 2022 à 07:00

je sais si elle est bonne car elle me donne un chiffre plus une serie du nombre que j'entre.
 

Est ce que tu peux m'expliquer, avec tes mots l'énoncé ?


Quand j'étais petit, la mer Morte n'était que malade.
George Burns

0
geekmtl Messages postés 23 Date d'inscription vendredi 16 septembre 2022 Statut Membre Dernière intervention 11 janvier 2023 1
19 sept. 2022 à 10:02

Merci

je viens de regarder sur leur site:

https://loteries.lotoquebec.com/portail-loteries/dam/jcr:69923a45-a76a-42e1-b978-38b2148e3417/fiche-combinaison-lotto-649-quebec-49_FR.pdf

mais je ne suis pas plus avancé que ca, vous pouvez jeter un coup d'œil.

merci.

0
Whismeril Messages postés 18640 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 2 octobre 2023 629
19 sept. 2022 à 12:16

Oui c'est pour ça qu'hier, je t'ai dir que je n'ai pas trop compris comment marche le numéro complémentaire.

Je pense que ton prof se base sur une autre règle mais peut importe. On peut dire que le complémentaire va de 1 à 10 dans une première approche.


Mais de ce que j'en vois, ton problème principal c'est la mise en algorithme de ton énoncé.

Donc me l'expliquer avec tes mots est un début.


Quand j'étais petit, la mer Morte n'était que malade.
George Burns

0
geekmtl Messages postés 23 Date d'inscription vendredi 16 septembre 2022 Statut Membre Dernière intervention 11 janvier 2023 1
20 sept. 2022 à 08:08

Merci pour votre disponibilité, voilà avec mes mots:

Il faut simuler des tirages de loto 6/49

1- on demande à l'utilisateur s'il veut 10 ou 200 billets ou entre les deux de loterie

 a) ainsi je crée et affiche ces combinaisons là

par exemple si l'utilisateur dit 20, je crée et affiches ces 20 combinaisons.

2- Par la suite je crée une combinaison gagnante

il doit comporter 6 chiffre et un numéro complémentaire

  b) j'affiche les 7 chiffres les uns après les autres ou 6 chiffres + un numéro complémentaire (c'est à ma discrétion)

3- Enfin indiquer les combinaisons gagnantes de l'utilisateur

si la personne a 0, 1, ou 2/6 comme le tableau, elle perd

par contre 

si elle a 3/6 ou 3/6 +

             4/6 ou 4/6 +

            5/6 ou 5/6 +

             6/6

elle est gagnante

3- sortir les statistiques:

le nombre de tirage

le nombre de combinaison ( ex: sur un tirage de 12-41-12-23-15-1-5: combien de fois on a 12, combien de fois on a 41 etc)

le % de combinaison pour chaque restât.

Voilà en gros comment je le comprends et vous le restitue avec mes mots, et merci par avance pour votre aide

1
Whismeril Messages postés 18640 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 2 octobre 2023 629
Modifié le 20 sept. 2022 à 08:12

C'est pas mal du tout.

Maintenant, toujours avec tes mots, détaille ce qu'il faut faire pour générer un ticket (ou la combinaison gagnante du point de vue algo c'est la même chose)


Quand j'étais petit, la mer Morte n'était que malade.
George Burns

0
geekmtl Messages postés 23 Date d'inscription vendredi 16 septembre 2022 Statut Membre Dernière intervention 11 janvier 2023 1
20 sept. 2022 à 08:38

Pour le random je ne le connait pas trop, j'ai regardé bcp de vidéos mais y a bcp d'informations.

pour le reste la deuxième question il s'agit de dire : voici le la combinaison gagnante je suppose

et pour la troisième que je pense comprendre le mieux:

int combinaison gagnante;

if(combinaison ==3/6 || combinaison == 3/6 +)

     {console.writeline("vous ganger entre 1million et 1,5M");}

else if(combinaison ==4/6 || combinaison == 4/6 +)

     {console.writeline("vous gager entre 2million et 3,5M");}

else if(combinaison ==5/6 || combinaison == 5/6 +)

    {console.writeline("vous gager entre 4 million et 5M");}

else if(combinaison ==6/6 )

    {console.writeline("vous gager le gros lot ");}

Voilà, je sais si je suis a coté ??

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Whismeril Messages postés 18640 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 2 octobre 2023 629
20 sept. 2022 à 10:15

C'est pas ça que je te demande.

Essaye de me dire avec tes mots (le code ça viendra après).

Comment comment générer UN tirage.


Quand j'étais petit, la mer Morte n'était que malade.
George Burns

0
geekmtl Messages postés 23 Date d'inscription vendredi 16 septembre 2022 Statut Membre Dernière intervention 11 janvier 2023 1
20 sept. 2022 à 13:39

Pour générer un tirage il faut choisir des numéros au hasard..

0
Whismeril Messages postés 18640 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 2 octobre 2023 629
20 sept. 2022 à 14:36

Ok, mais plus précisément ?


Quand j'étais petit, la mer Morte n'était que malade.
George Burns

0
geekmtl Messages postés 23 Date d'inscription vendredi 16 septembre 2022 Statut Membre Dernière intervention 11 janvier 2023 1
20 sept. 2022 à 15:39

et pour tirer de numéros au hasard il faut ici utiliser le random..

0
Whismeril Messages postés 18640 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 2 octobre 2023 629
20 sept. 2022 à 16:22

Non, le random c'est du code.

Pour l'instant je veux des mots.

Comment tu fais précisément pour tirer une combinaison ?


Quand j'étais petit, la mer Morte n'était que malade.
George Burns

0
geekmtl Messages postés 23 Date d'inscription vendredi 16 septembre 2022 Statut Membre Dernière intervention 11 janvier 2023 1
20 sept. 2022 à 16:34

Aujourd'hui pour tirer des combinaisons on met tous les boules sur une machine qui se charge de sortir les combinaisons.

0
Whismeril Messages postés 18640 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 2 octobre 2023 629
20 sept. 2022 à 20:35

Bon, on va faire autrement.

Imagine que quelqu'un te demande de lui apprendre à préparer un gâteau.

Ta réponse serait un truc du genre, "il faut le cuisiner".

Alors que lui, ce dont il a besoin, c'est

  • tu prends un grand saladier
  • tu y mélanges 3 œufs
  • tu y verses 100 grammes de beurre fondu
  • tu y ajoutes 100 grammes de farine
  • etc....

Bref, c'est la recette.

Et bien un algorithme, c'est la recette de ton programme.

Avant d'écrire le code, il faut avoir une idée de ce qui va mijoter.

Quand je lis

Aujourd'hui pour tirer des combinaisons on met tous les boules sur une machine qui se charge de sortir les combinaisons.

Je me dis que tu n'as pas la moindre idée de ce qui doit mijoter dans ton programme.

Et donc ton problème, ce n'est pas le random, parce que de toute façon, tu ne sais pas encore où/quand t'en servir.

Je te donne la première étape de la recette.

La méthode qui génère un tirage doit

  • tirer aléatoirement un nombre entier entre 1 et 49, inclus

À toi pour la suite.

Attention, la 2eme étape n'est pas la même que la première.


Quand j'étais petit, la mer Morte n'était que malade.
George Burns

0
geekmtl Messages postés 23 Date d'inscription vendredi 16 septembre 2022 Statut Membre Dernière intervention 11 janvier 2023 1
21 sept. 2022 à 01:01

Par la suite tirer 6 nombres entiers comme vous dites qui seront la combinaison gagnante.

0
Whismeril Messages postés 18640 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 2 octobre 2023 629
21 sept. 2022 à 08:02

Non si tu fais "juste" ça tu as des chances d'avoir 2 fois le même nombre.


Quand j'étais petit, la mer Morte n'était que malade.
George Burns

0
geekmtl Messages postés 23 Date d'inscription vendredi 16 septembre 2022 Statut Membre Dernière intervention 11 janvier 2023 1
21 sept. 2022 à 22:00

Bonjour

Là , je vois que ca m'aide pas trop depuis deux jour je fais du surplace et c'est demain que je dois assister à la correction, je vous comprendre avant la correction, mais temps pi.

Merci en tout cas.

0
Whismeril Messages postés 18640 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 2 octobre 2023 629
22 sept. 2022 à 08:11

Ce que j'essaye de faire, c'est te faire réfléchir à l'ensemble des "actions" à entreprendre pour arriver à faire ton exercice, simplement parce que tu ne peux pas écrire un code si tu ne sais pas ce qu'il doit faire.

Jusque-là, j'ai essayé de te faire trouver les étapes.

La première raison est que l'on apprend mieux ce que l'on a compris, si je te donne une solution toute faite, tu ne te l'approprieras pas autant que si c'est toi qui la "crée".

La seconde raison est que la solution que je pourrais te proposer utilise probablement des outils que tu ne connais pas encore et donc t'embrouiller plus.

C'est pour cela que je te demandais d'abord de m'expliquer ce que tu dois faire avec tes mots et à partir de là, on aurait travaillé sur le code

Je vais donc te proposer un pseudo code approximatif, d'une façon de faire pour le tirage d'une combinaison

Fonction TirageUnique sans paramètre:
    Random d un entier entre 1 et 49 à stocker 'la façon de le stocker va dépendre de ce que tu connais donc là, je ne peux pas être plus précis

    Random d un entier entre 1 et 49, vérification que cet entier n'est pas celui précédemment tiré, si OK à stocker, si pas OK, on recommence

    Random d un entier entre 1 et 49, vérification que cet entier n'est pas un de ceux précédemment tirés, si OK à stocker, si pas OK, on recommence

    Random d un entier entre 1 et 49, vérification que cet entier n'est pas un de ceux précédemment tirés, si OK à stocker, si pas OK, on recommence

    Random d un entier entre 1 et 49, vérification que cet entier n'est pas un de ceux précédemment tirés, si OK à stocker, si pas OK, on recommence

    Random d un entier entre 1 et 49, vérification que cet entier n'est pas un de ceux précédemment tirés, si OK à stocker, si pas OK, on recommence

    'pour le complémentaire, je pars du principe que c'est de 1 à 10, à corriger au besoin
    Random d un entier entre 1 et 10 à stocker

    Renvoie de toutes les valeurs stockées 'éventuellement triées pour avoir plus facile à déboguer
Fin de la fonction

Pour utiliser le random en C#, voici comment faire

Random rand = new Random();

int valeur1 = rand.Next(1, 50); //génère un pseudo aléatoire dans l'intervalle [1, 50[

int valeur2 = rand.Next(1, 50);//génère un autre pseudo aléatoire dans l'intervalle [1, 50[

Quand j'étais petit, la mer Morte n'était que malade.
George Burns

0
Rejoignez-nous