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

Algorithmes et structures de données Discussion :

Générer des grilles de Bingo


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 521
    Par défaut Générer des grilles de Bingo
    Bonjour.

    J'aimerai l'avis d'experts en algo/mathématique à propos de la conception d'un générateur de grilles de bingo.
    Il est trés facile de générer une suite de grille, de plaques de grilles avec des nombres aléatoires.

    Mais il faut que, face à une suite aléatoire de nombres de 0 à 90, il y ait le moins de doublons possible, y compris avec des suite de 10 000 grilles ou + par exemple.

    Pour rappel une grille de bingo ressemble à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    [1, 0, 0, 34, 47, 0, 0, 77, 81],
    [0, 12, 0, 42, 58, 0, 74, 82],
    [8, 0, 21, 33, 47, 0, 63, 0, 85],

    le but est de compléter la grille en fonction des numéros tirés, et enfonction du jeu, on gagne si on complète une ligne, 2 lignes ou la totalité de la grille.
    Sachant que des milliers de joueurs peuvent jouer en même temps.

    Le but est donc de s'assurer qu'il n'y ai pas 2 joueurs qui gagnent en même temps.

    Question bête : est-ce seulement possible ?
    Il semblerait que non : le nombre de probablité est vertigineux et il y aura inévitablement quelques doublons au moins.

    Question qui nous intéresse ?
    Peut ont toutefois optimiser la conception des grilles aléatoire pour faire en sorte qu'il y ait le moins de doublons possible ?
    Et si oui, comment ?

    J'ai cherché des petites combines mais globalement je pense qu'il faut des compétences et compréhensions mathématiques plus poussées pour répondre vraiment à cette question.


    Merci donc au petit géni qui pourra m'éclairer sur cette question !

  2. #2
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 293
    Par défaut
    Bonjour

    Mazertys17, tu regardes trop les grilles et pas assez le tirage. En effet, le tirage est un ordre parmi 100 numéros (soit 100! = factorielle de 100), et à chaque tour on consomme un numéro de la liste triée. Ce que tu souhaites est de n'avoir qu'un gagnant à chaque tour (en oubliant les premiers tours pour lesquels trop peu de numéros ont été tirés). Plus le temps s'écoule et plus tu as de gagnants virtuels (seul le premier compte, évidemment). Donc avec 100 numéros, 9 numéros par grille, tu peux avoir 92 tours gagnants maximum, donc 92 gagnants uniques. Avec 10000 grilles, malaise : doublons à foison.

    une suite aléatoire de nombres de 0 à 90
    Pourtant tu obtiens 98. 92 et 0.

  3. #3
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 521
    Par défaut
    Flodelarab Merci pour ta réponse.

    En effet...sachant qu'en plus, j'ai oublié de le préciser, on ne peut pas intervenir sur le tirage en lui même. Il doit être totalement aléatoire : le tirage est externe au programme.

    Pourtant tu obtiens 98. 92 et 0.

    Oui en effet je me suis trompé j'ai sauté la dizaine je vais réctifier ça.

    Donc en somme tu pense qu'il est impossible d'empêcher les doublons OU MEME de contrôler les probabilités afin d'en avoir le moins possible ?

  4. #4
    Membre très actif
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2013
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Février 2013
    Messages : 317
    Par défaut
    Citation Envoyé par mazertys17 Voir le message
    Flodelarab Merci pour ta réponse.

    En effet...sachant qu'en plus, j'ai oublié de le préciser, on ne peut pas intervenir sur le tirage en lui même. Il doit être totalement aléatoire : le tirage est externe au programme.

    Oui en effet je me suis trompé j'ai sauté la dizaine je vais réctifier ça.

    Donc en somme tu pense qu'il est impossible d'empêcher les doublons OU MEME de contrôler les probabilités afin d'en avoir le moins possible ?
    Y a toujours moyen de supprimer les doublons après génération ou de les empêcher à la génération, mais comme de toutes façons on ne peut faire que par comparaison avec les précédents, plus il y a de générations et plus ça prend de temps.

  5. #5
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 521
    Par défaut
    Y a toujours moyen de supprimer les doublons après génération ou de les empêcher à la génération, mais comme de toutes façons on ne peut faire que par comparaison avec les précédents, plus y en a et plus ça prend de temps.
    Sans doute...mais comment ?

    Si on calcule ne serait ce que les probabilités sur un tirage de 90 : c'est donc 90 puissance 90 si je ne m'abuse.
    Rien que ça donne mal à la tête...même avec un bon PC de gamer ça doit prendre un certain temps de faire tous les calculs de combinaison...
    Sachant qu'on ajoute à ça une puissance 15 de la grille bingo.

    Ca fait beaucoup. Au final, à moins, peut être, de ne pas vraiment générer les nombre aléatoirement, ce que j'ai essayé d'imaginer, c'est mission impossible...en tout cas pour quelqu'un comme moi qui n'a pas les maths dans la peau.

  6. #6
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 521
    Par défaut
    Y a toujours moyen de supprimer les doublons après génération ou de les empêcher à la génération, mais comme de toutes façons on ne peut faire que par comparaison avec les précédents, plus y en a et plus ça prend de temps.
    Sans doute...mais comment ?

    Si on calcule ne serait ce que les probabilités sur un tirage de 90 : c'est donc 90 puissance 90 si je ne m'abuse.
    Rien que ça donne mal à la tête...même avec un bon PC de gamer ça doit prendre un certain temps de faire tous les calculs de combinaison...
    Sachant qu'on ajoute à ça une puissance 15 de la grille bingo.

    Ca fait beaucoup. Au final, à moins, peut être, de ne pas vraiment générer les nombre aléatoirement, ce que j'ai essayé d'imaginer, c'est mission impossible...en tout cas pour quelqu'un comme moi qui n'a pas les maths dans la peau.

    Et en plus a supposer qu'on mette l'algo sur le papier est-ce qu'on risque pas de rester bloqué à un moment ou l'autre ?

  7. #7
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 293
    Par défaut
    Si on calcule ne serait ce que les probabilités sur un tirage de 90 : c'est donc 90 puissance 90 si je ne m'abuse.
    Oui tu t'abuses. Je t'ai déjà dit que c'était 90! (factorielle de 90). Il y a 90! tirages possibles, soit 1.485716e+138 possibilités. Mais cela n'a pas vraiment de rapport avec le fait de répartir les gagnants.

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/07/2005, 22h19
  2. Comment générer des pages HTML dynamiques ?
    Par Devil666 dans le forum Java EE
    Réponses: 2
    Dernier message: 15/04/2005, 10h56
  3. [CR] Générer des espaces pour une valeur champ
    Par newpress dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 17/02/2005, 17h43
  4. Générer des fichiers PDF
    Par bobbafet dans le forum C++Builder
    Réponses: 5
    Dernier message: 29/11/2004, 23h53
  5. [Java] Générer des rapports à la crystal reports
    Par Vessaz dans le forum Autres outils décisionnels
    Réponses: 4
    Dernier message: 11/10/2004, 19h07

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