Répartition VBA Quine Loto

re-Bonjour,

Ta réponse me montre que je me suis encore mal exprimé. L'ordre des 6 familles de grilles n'a pas d'importance pourvu qu'on arrive à la bonne somme. et avec les mêmes 6 familles de grilles tu peux générer 720 permutations de familles grilles. C'est de cette étape préliminaire que je parle et que tu peux ramener à une seule combinaison.

Après intervient les phases dont tu parles, qui est le choix d'une grille pour chacune des familles et l'attribution d'un nombre à chacune des cases sur les cartons.

Mais je répète que je suis épaté, je m'y étais aussi mis et je m'étais retrouvé avec un algo qui fonctionnait mais aurait pris des plombes (au moins l'age de l'univers) pour sortir toutes les possibilités. Donc chapeau bas !

Ta réponse me montre que je me suis encore mal exprimé. L'ordre des 6 familles de grilles n'a pas d'importance pourvu qu'on arrive à la bonne somme. et avec les mêmes 6 familles de grilles tu peux générer 720 permutations de familles grilles. C'est de cette étape préliminaire que je parle et que tu peux ramener à une seule combinaison.

exact ! là j'ai saisi cette nuance, merci

J'imaginais plus un seul onglet avec formules aléas pour

ça c'est juste pas possible, sauf à me démontrer le contraire : Les cartons ont donc 90 case "1" qu'on va remplir avec les 90 numéros.

La seule chose qui est aléatoire c'est l"emplacement des cases à remplir : Dans tous les cas une fois les cartons remplis il doivent tous comporter les 90 N° dans leur 6 grilles.
Il s'agit donc bien de tirage sans remise (jusqu'à épuisement des 90 numéros) Je serai curieux de voir comment tu remplis 240 000 lignes avec une formule alea avec cette contrainte !

Dans l'image ci contre on voit bien que dans le carton on retrouve une fois et une seule les 90 N°. Il ne s'agit donc pas de tirage aléatoire mais de répartir les N° dans les colonnes appropriées.

cartons

Je me doute bien que si l'on utilise des permutations ça a des chances de faire le joint mais ça reste à démontrer ! Et là les probabilités risquent de tomber en flèche surtout si on ne maîtrise pas les mariages de la même famille.

Je ne suis pas capable de faire un calcul de probabilité mais je sais (pour avoir déjà expérimenté) qu'il est sans doute plus simple de faire un tirage direct sans doublon que d'éliminer les doublons à la fin quand les N° sont attribués. Car je n'ai pas trouvé de routine satisfaisante pour dédoublonner les 15 N° de 2 000 000 de grilles. J'ai du me le palucher "à la main." Mise en lignes horizontale des 15 N° de chaque grille, tri horizontal, tri vertical puis in fine dédoublonnage...

A+

h2so4 j'ai testé ta modif. Il y a sans conteste un gain de temps important mais il subsiste un nombre important de "mariages incestueux" dans un même carton.

Je vais donc tenter de remplacer ces boucles For par un tirage sans remise des 56 éléments de la famille paires. S j'en réussi seulement 8 avec chacun des 28 éléments de la famille des impaires, le contrat est rempli et aucune possibilité de doublon. Ça vaut la peine de se pencher. D'autant que ça fait déjà un mois que triture ça alors je voudrais bien une solution pérenne.

A+

Bonjour Galopin01,

h2so4 j'ai testé ta modif. Il y a sans conteste un gain de temps important mais il subsiste un nombre important de "mariages incestueux" dans un même carton.

je ne comprends pas ce message. Je pars du principe que les cartons associés aux familles sont corrects et que la somme magique que tu as donnée permet de sélectionner 6 familles qui respectent toutes les règles. La modification que j'ai faite optimise simplement la génération de groupes de 6 familles en évitant les doublons dus aux permutations.

J'imaginais plus un seul onglet avec formules aléas pour

ça c'est juste pas possible, sauf à me démontrer le contraire : Les cartons ont donc 90 case "1" qu'on va remplir avec les 90 numéros.

si si c'est possible !

Bon c'est pas grave je vais pas en faire un fromage ! Déjà avec ces familles je pense pouvoir me débrouiller. C'est déjà pas mal car j'étais plutôt mal avec d'innombrables doublons à vérifier...

Je laisse le post ouvert pour faire un retour si j'arrive à finaliser.

Merci à tous deux.

A+

et voici un carton généré aléatoirement (et c'est blindé de vérification), suffit de faire F9 pour en avoir un nouveau parmi les milliards de possibilités !

il faudrait que j'arrive à passer le fichier mais il fait 2,5 Mo, j'y ai mis les

  • 8490 grilles
  • 84 familles
  • 74445 assemblages après avoir adopté la proposition d'h2so4 capture d ecran 63

edit : je vous ai transmis le fichier en mp

C'est à Steelson que revient tout le mérite (en plus de celui qui te revient)

Bel effort ! Mais j'ai malheureusement quelques contraintes particulières que je n'ai pas exposé :

Je rappelle que je travaille bénévolement pour une asso qui a pour but de financer intégralement les travaux d'au moins un chercheur sur une maladie rare.

Pour cause de corona virus ce genre de manifestation en salle n'est plus guère praticable ce qui a imposé une évolution radicale pour pérenniser ces recherches médicales.

Mon problème est de constituer une BD de ces cartons. Enfin... plutôt une pseudo BD qui répond au modèle joint plus bas.

En effet les grilles doivent être non seulement unique et les cartons également mais, ils seront numérotés (un peu différemment du modèle joint, mébon...

Ils seront non seulement imprimés sur différents supports pour une part mais surtout imprimé en pdf et uploadés sur une plateforme internet qui les proposera aux adhérents qui n'auront qu'à remplir leur "panier." Le tirage sera ensuite fait périodiquement et les gagnants devront pouvoir être recensés, vérifiés etc.

Bien sur il ne sera pas question de retirer d'autres grilles ou tout à fait occasionnellement pour un motif particulier. Toutefois tout ou partie de ces cartons ou grille doit pouvoir être récupérable instantanément. (par exemple en cas de dégradation d'un support papier/carton ou de pollution du support pdf. C'est le pourquoi de ce listage un peu particulier.

Pour les curieux qui veulent en savoir plus, le module d'édition existe déjà, il s'appuie entre autre sur une lecture avec des codes barre et également un environnement informatique assez lourd pour pouvoir coordonner toussa.

L'ensemble dans le cadre juridique règlementaire pour ce type d'association.

Donc si tu es capable avec ce joli travail de me générer "en dur" les 256 000 lignes du cahier des charges soit certain que je ne m'en plaindrai pas. Même si je serai malgré tout obligé de vérifier "en dur" l'absence de doublons de grilles. Je ne peux pas me contenter de l'affirmation que tes paramètre sont "béton" ! (même si je te crois bien volontiers.

Le fichier qui constitue ma base de travail pour les travaux ultérieurs :

60model.xlsm (12.32 Ko)

A+

Donc si tu es capable avec ce joli travail de me générer "en dur" les 256 000 lignes du cahier des charges soit certain que je ne m'en plaindrai pas. Même si je serai malgré tout obligé de vérifier "en dur" l'absence de doublons de grilles. Je ne peux pas me contenter de l'affirmation que tes paramètre sont "béton" ! (même si je te crois bien volontiers.

Le fichier qui constitue ma base de travail pour les travaux ultérieurs :

A+

wahou ... bon j'aime bien les challenges et pour que les vérifications soient simples, il faudra que la macro intègre ces contrôles ... en tous cas si c'est pour aider ce genre de cause je suis présent ! tu peux compter sur mon aide.

il faudra que la macro intègre ces contrôles

pas forcément. C'est assez chiant à programmer et ça n'intervient qu'une seule fois avant gravure sur CD et la constitution des PDF. après je détruit la feuille pour gains de place elle n'a plus d’intérêt.

Je suis passé expert dans la vérification des doublons ! 250 000 lignes ne me prendra pas plus d'une demi heure. D'ailleurs j'ai déjà des macros qui font ce travail : Inutile de réinventer la roue !

Récupération de chaque N° d'une grille et mise en ligne des 15 N° ; Tri horizontal ; concaténation des N° puis tri vertical ensuite un petit coup de format conditionnel pour identifier les doublons... Les fois précédentes je n'ai pas pu utiliser l'outil intégré au ruban pour dédoublonner, c'était hors limite. Il faut dire que mon dernier tirage était à 2 million de lignes. pour cette vérification je préfère une vérification visuelle et manuelle plutôt qu'un programme aussi fiable soit-il. Parce que une fois que tu as gravé tes CD transféré tout tes fichiers au Webmestre et plastifié les cartons, j'ai pas l'air con si je découvre encore une ano...

Bref fait pour le mieux ce qui ne m'empêche pas de chercher de mon coté si des tirages sans remise ne sont pas plus commode.

Le premier qui arrive à aligner 256 000 lignes valides avec des tirages de 1 à 90 sans doublons aura gagné... toute mon estime !

Remarque tu as un avantage certain : J'ai visiblement des créneaux de travail très insuffisants...

A+

J'ai mis en PC en chauffe

capture d ecran 64

je viens de faire une vérif rapide ..

  • 270.000 lignes
  • 9.194 lignes gérées au moins 2 fois, une générée 4 fois
  • mais AUCUN "tri-lignes" (carton) identique sur le lot

Merci pour le fichier, à première vue ça parait parfait.

Je ne pourrai surement pas éplucher ça aujourd'hui mais je te fais un retour très rapidement.

Le code m'intéresse également ! Ne serait ce que pour stimuler mes neurones...

Merci encore.

Roger

le code ... ce n'est pas avec cela que tu apprendras quelque chose !

    [plage].Copy
    i = 1
    Do
        Cells(18 * (i - 1) + 1, 1).PasteSpecial Paste:=xlPasteValues
        i = i + 1
    Loop Until i = 200

plage étant le grille générée aléatoirement du méga-fichier transmis en mp

comme à chaque collage excel refait une génération de calcul aléatoire, je n'ai rien d'autre à faire

je viens de faire une vérif rapide ..

  • 270.000 lignes
  • 9.194 lignes gérées au moins 2 fois, une générée 4 fois
  • mais AUCUN "tri-lignes" (carton) identique sur le lot

722 lignes sont en fait identiques et à la même position verticale sur le carton (dont 2 trois fois),

Pour être encore plus "puriste", je pourrais écarter à la main quasiment le carton complet et le contrôle/la démo auprès des autorités s'en verrait encore renforcé(e)

J'arriverais alors un poil au dessus de 256.000 lignes si j'en enlève donc 721*18 + 2*3*18 !

Les lignes sont inutile au tirage elle doivent juste respecter la distribution 4 vides x 5 nombres.

Dans ce jeu seul les cartons pleins sont primés.

j'ai eu le temps de tester ton fichier, c'est parfait pour l'unicité des cartons.

J'ai vérifié également les sommes de contrôle, ainsi que toutes les sommes par cartons et par colonne. C'est tout tout bon donc j'adopte !

YAPUKA faire les PDF et graver les DVD et ça je maitrise. Ça pourra faire l'affaire pour quelques années...

Je ne te remercierai jamais assez car compte tenu du peu de temps dont je dispose et de mon évidente lenteur à programmer, je n'étais sans doute pas au bout de mes peines...

A+

Merci pour ton retour, et c'était un vrai plaisir de collaborer ensemble.

le code ... ce n'est pas avec cela que tu apprendras quelque chose !

    [plage].Copy
    i = 1
    Do
        Cells(18 * (i - 1) + 1, 1).PasteSpecial Paste:=xlPasteValues
        i = i + 1
    Loop Until i = 200

plage étant le grille générée aléatoirement du méga-fichier transmis en mp

comme à chaque collage excel refait une génération de calcul aléatoire, je n'ai rien d'autre à faire

Je me fais l'effet dêtre un parfait abruti. Ces 276 000 lignes ne sont pas apparues par hasard :

Initialement je pensais que tu générais tout par macro comme je fais quand je fais des grilles complètement aléatoire.
El je pensais que tu remplaçais mes masques 0/1 par des paramètres dans ta macro.

Or je comprend maintenant qu'il n'en est rien : Tu as quand même généré des masques valides avec les familles je suppose..

Tu as ensuite remplacé les 1 par une formule ALEA avant de faire ton collage spécial c'est ça ?

Rechercher des sujets similaires à "repartition vba quine loto"