Partage

comparer des nombres

tableau ou autre?

Sujet résolu
16 mai 2018 à 17:52:39

Salut à tous.
Je débarque dans votre monde et je suis un peu ... perdu !!!
je voudrais faire un programme générateur de grilles euros millions avec les options suivantes :                         
 -   générer aléatoirement des grilles de cinq numéros en utilisant une seule fois les 50 numéros ( pas de doublon sur l'ensemble).                               
   - 1er : générer 10 grilles.                                                                                                       
       - 2eme : générer 9 grilles en utilisant les 50 numéros moins ceux sortis au dernier tirage gagnant.             
       - 3eme : vérifier que les grilles générées ne contiennent pas 5 , 4 ou 3 numéros communs avec les anciens tirages gagnants préalablement       enregistrés.           
- pour les étoiles , ... le ciel m'aidera !!!!!!!!!!     et vos conseils concernant l'étape précédente aussi !
depuis un mois et demi, je tente pleins de trucs avec CodeBlocks mais je ne suis pas sur d'utiliser les bons moyens...  par exemple,  dans quoi stocker les tirages gagnants ..  un fichier, une pile ...     avec quoi comparer les grilles générées et les tirages .. etc ; comment simplifier les codes ....     en fait pleins de questions de débutant !   
juste pour vous faire mal aux yeux ( désolé), voici mon  "code de la honte"  pour découper et trier dans l'ordre croissant (faut- il le faire d'ailleurs ?) le tableau aléatoire avant de le comparer . Je n'ai pas reussi à faire moins redondant ..  j'ai trouvé le tableau  aléatoire sans doublons sur le net, généreusement mis à disposition par un certain  fvirtman ,  merci à lui.
Si l'un d'entre vous à le courage de bien vouloir m'aider ....    Merci d'avance.
    int *p1,*p2,*p3;
    p1 = &tab[0];
    p2 = &tab[5];
    p3 = &tab[10];
     { for(i=0;i<5;i++)
         {printf(" %d",p1[i]);
         }
          printf("\n");
        for(i=0;i<5;i++)
         {printf(" %d",p2[i]);
         }
           printf("\n");
            for(i=0;i<5;i++)
                { printf(" %d",p3[i]);
                }
     }
          printf("\n \n");
int tri_croissant(int tab[], int taille)
{
   int i, j;
   for (i = 1; i < taille; ++i)
     {  int elem = tab[i];
       for (j = i; j > 0 && tab[j-1] > elem; j--)
           tab[j] = tab[j-1];
           tab[j] = elem;
     }
}
 tri_croissant(p1,5);
{      int i;
       printf("apres le tri p1: ");
       for(i = 0; i < 5; i++)
         {printf(" %d", p1[i]);
         }
            printf("\n");
}
 tri_croissant(p2,5);
{      int i;
       printf("apres le tri p2: ");
       for(i = 0; i < 5; i++)
         {printf(" %d", p2[i]);
         }
            printf("\n");
}
 tri_croissant(p3,5);
{      int i;
       printf("apres le tri p3: ");
       for(i = 0; i < 5; i++)
         {printf(" %d", p3[i]);
         }
}

-
Edité par E. T. 16 mai 2018 à 18:03:08

Vous êtes demandeur·se d'emploi ?
Sans diplôme post-bac ?

Devenez Développeur·se web junior

Je postule
Formation
courte
Financée
à 100%
Staff 16 mai 2018 à 17:59:47

Bonjour,

Le message qui suit est une réponse automatique activée par un membre de l'équipe. Les réponses automatiques leur permettent d'éviter d'avoir à répéter de nombreuses fois la même chose, ce qui leur fait gagner du temps et leur permet de s'occuper des sujets qui méritent plus d'attention.
Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter la personne en question par Message Privé.

Pour plus d'informations, nous vous invitons à lire les règles générales du forum

Merci d'utiliser la mise en forme de code

Les forums d'Openclassrooms disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source afin de les rendre plus lisibles et faciles à manipuler par les intervenants. Pour cela, il faut utiliser le bouton Image de l'éditeur, choisir un des langages proposés et coller votre code dans la zone prévue. Si vous utilisez l'éditeur de messages en mode Markdown, il faut utiliser les balises <pre class="brush: c;">Votre code ici</pre>.

16 mai 2018 à 19:01:47

Hello,

"depuis un mois et demi, je tente pleins de trucs avec CodeBlocks mais je ne suis pas sur d'utiliser les bons moyens...  par exemple,  dans quoi stocker les tirages gagnants ..  un fichier, une pile ...     avec quoi comparer les grilles générées"

1 - Tu devrais suivre les cours et faire les exercices présents sur ce site.

2 - Si tu as du mal à imaginer l'algo de ton programme, comment stocker tel ou tel information pour la réutiliser plus tard, je te conseil de prendre une feuille un crayon et de lister de manière séquentielle et exhaustive les différentes étapes de ton programme, sans forcement écrire de quelle manière tu vas le faire.

Regarde ça --> https://openclassrooms.com/courses/debutez-l-analyse-logicielle-avec-uml/les-differents-types-de-diagrammes

histoire de mettre tes idées à plat.

J'espère t'avoir donné quelques pistes de réflexion quant à la manière d'aborder ton développement


17 mai 2018 à 10:41:27

Salut,

Pour info, sur le site FDJ, il y a la possibilité de télécharger l'historique des tirages. Il suffit d'en extraire les données.

J'avais en tête, il y a peu, de faire un programme qui donnerait une grille à partir des données statistiques sur l'historique. D'ailleurs, j'avais commencé à l'analyse du fichier...

Mais cela n'apporte absolument rien, aucun moyen d'augmenter ses chances de réussite.

Un programme de 10 lignes qui sort 5 valeurs au pif a autant de chances de réussite qu'un programme qui le fait en analysant l'historique. Donc, quand tu as résolu le premier point, ton programme est potentiellement terminé.

Les boules n'ont aucune mémoire, elles ne se concertent pas en se disant : "moi je suis déjà sorti 20 fois, c'est au tour du 32 de sortir". Une combinaison gagnante a autant de chance de ressortir la semaine suivante que n'importe quelle autre combinaison. (1, 2, 3, 4, 5) a autant de chance de sortir que n'importe quelle autre combinaison répartie uniforme (je vois venir le coup de la "moyenne des tirages").

Une analyse statistique sur un grand nombre de tirages ne permettrait de mettre en évidence que la présence d'une boule "truquée" par un comportement extraordinaire, à savoir une présence ou une absence qui soit vraiment en dehors de la loi normale. Et ce ne serait qu'un soupçon, le 1 pourrait tomber à chaque tirage pendant 2 mois sans qu'il n'y ait de triche pour autant. Mais on serait en droit de se poser la question.

Bref, à moins qu'il ne s'agisse d'un exercice pour tes cours, inutile de perdre du temps à aller plus loin.

Bonne continuation.

-
Edité par drx 17 mai 2018 à 10:50:11

Nouveaux Modules pour la CEV_lib : éditeur de map (tiles) + météo. Testez le rendu ici. w pour alterner météo.
17 mai 2018 à 10:44:48

drx a écrit:

Salut,

Pour info, sur le site FDJ, il y a la possibilité de télécharger l'historique des tirages. Il suffit d'en extraire les données.

J'avais en tête, il y a peu, de faire un programme qui donnerait une grille à partir des données statistiques sur l'historique. D'ailleurs, j'avais commencé à l'analyse du fichier...

Mais cela n'apporte absolument rien, aucun moyen d'augmenter ses chances de réussite.

Un programme de 10 lignes qui sort 5 valeurs au pif a autant de chances de réussite qu'un programme qui le fait en analysant l'historique. Donc, quand tu as résolu le premier point, ton programme est potentiellement terminé.

Les boules n'ont aucune mémoire, elles ne se concertent pas en se disant : "moi je suis déjà sorti 20 fois, c'est au tour du 32 de sortir". Une combinaison gagnante a autant de chance de ressortir la semaine suivante que n'importe quelle autre combinaison. (1, 2, 3, 4, 5) a autant de chance de sortir que n'importe quelle autre combinaison répartie uniforme (je vois venir le coup de la "moyenne des tirages").

Bref, à moins qu'il ne s'agisse d'un exercice pour tes cours, inutile de perdre du temps à aller plus loin.

Bonne continuation.

ça me rappelle une discussion ça :D

"Le fossé séparant théorie et pratique est moins large en théorie qu’il ne l’est en pratique"
17 mai 2018 à 10:56:15

Et oui ^^ .

Chacun son boulot, c'est pour ça que j'avais posé la question aux matheux. Il faut savoir se laisser convaincre par les arguments scientifiques. Vouloir croire ("espérer" en l'occurrence) n'est pas suffisant. L'espoir peut facilement biaiser le raisonnement logique.

La preuve, c'est qu'au final, j'ai fini d'être convaincu en faisant les tirages de dés par moi-même.

-
Edité par drx 17 mai 2018 à 10:59:23

Nouveaux Modules pour la CEV_lib : éditeur de map (tiles) + météo. Testez le rendu ici. w pour alterner météo.
17 mai 2018 à 11:16:00

drx a écrit:

Mais cela n'apporte absolument rien, aucun moyen d'augmenter ses chances de réussite.

Ce qui me fait énormément rire, c'est que dans une loterie avec répartition des gains comme l'Euromillions, un système qui génère une grille à partir de statistiques n'aura non seulement aucune influence sur les chances de réussite (c-à-d de trouver de bons numéros), mais en plus il risque fortement de diminuer l'espérance de gains (les euros gagnés) !

En effet, si l'on a de la chance au tirage, on devra partager les gains avec tous les autres idiots* qui auront appliqués le même système. N'est-ce pas une magnifique ironie d'être ainsi puni de sa propre idiotie ?

* Et à voir le nombre incroyable de sites de "statistique"** sur l'Euromillions, la connerie est décidément très répandue.

** Je mets "statistique" entre guillemets, car compter des événements aléatoires tient beaucoup plus de l'exercice de calcul d'école élémentaire que de la statistique.

-
Edité par Marc Mongenet 17 mai 2018 à 11:19:51

17 mai 2018 à 11:21:40

Alors que la meilleure technique pour gagner plus a l'euromillion c'est de mettre des nombres qui se suivent...
"Le fossé séparant théorie et pratique est moins large en théorie qu’il ne l’est en pratique"
17 mai 2018 à 11:50:35

Re,

Je ne retrouve plus la source de ce que j'avance, alors ne le prenez pas pour un fait établi.

J'avais lu que ceux qui partageaient le moins les gains, avaient le plus souvent joué des nombres élevées. L'article expliquait cela par le fait que beaucoup de gens ont tendance à jouer des dates (naissance, événement marquant) et donc plus largement dans les plages 1-12 et 1-30~31. D'autre part, peu de gens ont leur année dans la grille. les 1930-1949 ont entre 69 et 88 ans et les 2001-2018 entrent dans les jours/mois joués. Les papy-boomers sont globalement les seuls à avoir leur année dans la grille hors plage "jour/mois".

La vraie statistique utile serait à faire sur les grilles jouées par les gens afin d'en déduire une grille la plus "exotique" possible et tenter de se garantir d'être le seul à gagner... Si on gagne.

Je pense que 1-2-3-4-5-6 est très joué, ne serait-ce que par les gens qui ont le même raisonnement que KirbXCoucou, peut-être seulement par 3 personnes, mais il ne te reste déjà plus que 63 millions sur les 190 ^^. Également le 4-8-15-16-42 de la série Lost doit être joué par au moins 2 ou 3 personnes. On pourrait supposer que toute combinaison faisant référence à une notion globalement (ou partiellement) commune est probablement jouée au moins 2 fois.

-
Edité par drx 17 mai 2018 à 11:52:40

Nouveaux Modules pour la CEV_lib : éditeur de map (tiles) + météo. Testez le rendu ici. w pour alterner météo.
18 mai 2018 à 10:30:20

1er :le but de ma demande n'était pas de déclencher un débat philosophique sur le bien fondé d'un tel programme ... mais pourquoi pas ? ..

2eme : Je joue régulièrement à l'euro millions et las de me demander à chaque fois quelles cases cocher, plutôt que d'utiliser un des multiples générateur disponible sur le net, j'ai vu là l'occasion d' essayer de créer un programme . Mon premier en l’occurrence . Et à le faire , je trouve intéressant de le "corser" un peu.

3eme : j'en suis donc au stade de la comparaison et je voudrais trouver un moyen rationnel et efficace de savoir si une grille générée comprend 3,4 ou 5 numéros figurants dans une des grilles gagnantes ; auquel cas "false" ,on en génère une autre . Voilà pourquoi je faisais appel à vous. Pas pour qu'on me dise que ce que je fais ne sert à rien ; ni pour qu'on me donne le code mais la façon de procéder.

4eme : je n'ai nulle part indiqué ou laissé entendre que je pensais avoir trouver LA solution pour gagner à l'euro millions Mr Marc Mongenet qui me traite d'idiot emplit de la connerie qui se répand en ce monde...   mais qui pourtant s'interroge en ce sens ..

Marc Mongenet

  • Langage C 
16 mai 2018 à 18:59:53 

Bonjour,

Un autre thread me fait penser que j'ai souvent cherché, sans succès, un programme capable de générer un nombre minimal de grilles d'Euromillions qui assure d'avoir au moins une grille gagnante (par "gagnante" j'entends 2 numéros, pour un gain de 4€).
Et tant qu'à faire, un générateur de grille qui assure d'avoir au moins une grille avec 2 numéros et une étoile, 3 numéros, etc.
On trouve des tonnes de statistiques toutes plus inutiles les unes que les autres, mais pour ce qui est de trouver un programme utile, nada.

--------------------------------------------------------------------------- 

mais peut-être est ce un homonyme ?                                                                                                                 

Salut a tous ..  Eric turion .                                                                                     

18 mai 2018 à 10:41:54

Hello! C'est vrai que comme on a déjà eu le débat une fois on ressort un peu les idées globales, sachant pas vraiment l'interet de ton programme, on voulait juste t'éviter des peines inutiles si le but était de trouver une façon d'augmenter les chances de gagner :)

Dans un premier temps, tu peux utiliser les balises </> (au dessus de ta fenetre de texte) histoire de mettre le code en forme, ça sera plus facile à lire.
"Le fossé séparant théorie et pratique est moins large en théorie qu’il ne l’est en pratique"
18 mai 2018 à 11:41:52

E. T. a écrit:

4eme : je n'ai nulle part indiqué ou laissé entendre que je pensais avoir trouver LA solution pour gagner à l'euro millions Mr Marc Mongenet qui me traite d'idiot emplit de la connerie qui se répand en ce monde...   mais qui pourtant s'interroge en ce sens ..

Je me fiche totalement des numéros sortis. Ils n'ont aucun intérêt, sauf à vouloir vérifier que les tirages de l'Euromillions sont réellement aléatoires.

comparer des nombres

× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
  • Editeur
  • Markdown