organisation tournoi

Mad

XLDnaute Nouveau
Bonjour,
Je fait appel à vous après plusieurs jour sans avancer sur mon projet.
Il s'agit d'un fichier me permettant l'inscription d'adhérents (ça c'est ok) et de pouvoir organiser des petits tournois interne avec équipe mixte (et là ça coince) via la base de donnée des inscrit.
j'ai beau essayer avec mes compétences quasi nul et la copie de petit bout de code glaner par ci par là mais là je n'y arrive plus.
Les problèmes sont au niveau du tirage au sort.
Plutôt que de long discours, je vous joint l'ébauche de mon fichier dans lequel j'ai placé des encarts avec les fonctions de tirage espérer.
Par avance merci pour toute l'aide que vous pourrez m'apporter.
 

Pièces jointes

  • test.xlsm
    126.2 KB · Affichages: 86
Dernière édition:

Dranreb

XLDnaute Barbatruc
Il m'est venu une idée, je ne sais pas ce qu'elle vaut.
Il s'agirait d'appliquer l’algorithme du tirage aléatoire 1 contre 1 tous versus à nombre limité de terrains de jeux simultanés, mais uniquement aux participants du genre minoritaire.
Lors d'une seconde passe on tenterait d'associer à chaque joueuse tirée un partenaire qui ne lui a encore jamais été associé ni n'a déjà rencontré le partenaire de son adversaire.
Edit: et j'ai oublié: …et qui n'a pas déjà déjà été associé à une autre dame dans le même tour. Ça fait beaucoup de contraintes, j'ai bien peur que ça coincera pareil, sans solution. Je me demande comment vous arrivez à la main à sortir quelque chose d'à peu près correct.
 

Pièces jointes

  • TirageTousVersus.xlsm
    88.6 KB · Affichages: 38
Dernière édition:

Mad

XLDnaute Nouveau
Je te fait entièrement confiance puisque tu as bien saisie tous les paramètres espérer et le but à atteindre.
Excellent ton "tirage tous versus" et le principe d'ajuster le nombres de terrains dispo est une option qui je te l'avoue m’intéresse.
 

Dranreb

XLDnaute Barbatruc
Non, mais vous n'êtes pas tout à fait nul en programmation, vous pourriez étudier comment elle fonctionne et essayer d'écrire quelque chose.
Il faudrait déjà voir, en pratique si on arrive à la main à associer des partenaires à un résultat de tirage 1 contre 1, sinon ce n'est pas la peine de s'y lancer.
 

Mad

XLDnaute Nouveau
Ah si si, je confirme je suis nul.
Oui, je lis et essaye de comprendre le fonctionnement, la syntaxe de tous ces codes (merci UPSA).
Là en voyant ton classeur, j'étais parti pour voir la possibilité d'associer un numéro pair pour les femmes et un numéro impair pour les hommes et forcer le tirage un chiffre pair avec un chiffre impair et cela bien sur sans doublon. mais pour le moment j'étudie la possibilité. Allez hop un UPSA effervescent:D.
 

Dranreb

XLDnaute Barbatruc
Il vaudrait mieux à mon avis mettre toutes les femmes en tête de la liste d'inscrits pour que le processus de tirage puisse continuer à s'appuyer sur des numéros de 1 au nombre de femmes. Enfin du moins si on veut l'effectuer avec l’algorithme du tirage aléatoire 1 contre 1…
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Vous n'avez jamais compris ma dernière idée, du poste #16, je crois.
De tout façon je crois qu'elle ne marcherait pas.
Mais il faut essayer à la main à tout hasard.
Faites un tirage 1 contre 1 tous versus pour 10 participants et 4 terrains. (Il y a une feuille "Essais" dans le TirageTousVersus.xlsm qui permet ce genre de manip, déconnectée de toute liaison avec des noms et des problèmes d'intendance de la gestion du tournoi)
Essayez à la main d'accoler aux numéros de 1 à 10 résultants, d'autres numéros de 11 à 26, en respectant les 3 contraintes:
1) — Un certain numéro de 11 à 26 ne peut être accolé qu'une seule fois à un certain numéro de 1 à 10
2) — Un certain numéro de 11 à 26 ne peut être accolé qu'une seule fois dans chaque manche
3) — Deux de 11 à 26 ne doivent figurer simultanément que dans une seule ligne.
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Remarque: si c'était un moindre mal qu'un homme soit plusieurs fois partenaire d'une même femme, le problème serait beaucoup plus simple: il suffirait de combiner deux tirages 1 contre 1 effectués indépendamment: un pour les homme, l'autre pour les femmes.
 

Dranreb

XLDnaute Barbatruc
Votre conclusion là où ça pêche démontre l'infaisabilité de la chose avec ces règles là.
Surement qu' un algo calculerait mieux que moi et eviterait ce phénomène.
En effet, vous avez dû faire l'essai avec mon classeur, il l'éviterait à coup sûr et resterait bloqué à la moitié du chemin à essayer en vain toutes les combinaisons de joueurs restants. Ça pourrait durer des jours et des jours à déterminer qu'il n'y a aucune solution.
 

Mad

XLDnaute Nouveau
Correction, après 3h à jouer avec les numeros , voila le resultat :
- 0 doublons, personne (ni les 2 hommes ou les 2 femmes) ne se rencontre 2 fois
- chaque femme fait le même nombre de match
- pour les hommes à qui il manque un match si l'algo peut le spécifier à la fin de son calcul on peut alors faire rapidement en trichant ( a la main) des matchs non mixte pour arriver au même nombre de match.
Bref c'est faisable.
Malheureusement toujours pas par moi je n'ai vraiment pas le niveau.
 

Pièces jointes

  • TirageRéussi.xlsm
    92.8 KB · Affichages: 40

Dranreb

XLDnaute Barbatruc
Bonjour.
Contrairement à ce que vous dites dans la feuille, de nombreux participants se rencontrent plusieurs fois dans votre essai, à commencer par 13 contre 9 en lignes 6 et 10. Mais il y en a d'autres, qui peuvent être surlignés au moyen de cette procédure :
VB:
Sub Vérif()
Dim R As Range, T(), L&, C1&, C2&
Set R = FEssais.[A3:D58]: T = R.Value
ReDim TDéjàAvec(1 To 26 * 25 \ 2), TDéjàContre(1 To 26 * 25)
R.Interior.Color = &HF0F0F0
For L = 1 To UBound(T, 1)
   If Not IsEmpty(T(L, 1)) Then
      For C1 = 1 To 3: For C2 = C1 + 1 To 4
         If C1 > 2 Eqv C2 > 2 Then
            If DéjàAvec(T(L, C1), T(L, C2)) Then
               R(L, C1).Interior.Color = &HFFFF&
               R(L, C2).Interior.Color = &HFFFF&
            Else: DéjàAvec(T(L, C1), T(L, C2)) = True: End If
         Else
            If DéjàContre(T(L, C1), T(L, C2)) Then
               R(L, C1).Interior.Color = &HFFFF&
               R(L, C2).Interior.Color = &HFFFF&
            Else: DéjàContre(T(L, C1), T(L, C2)) = True: End If
         End If: Next C2, C1: End If: Next L
End Sub
Par ailleurs, il serait impossible de faire jouer absolument tout le monde exactement 9 fois, parce que ça impliquerai 9 * 26 = 234 cellules renseignées , ce qui n'est pas divisible par 4. Après 58 match à 4, il resterait 2 joueurs qui n'auraient joué que 8 fois.

J'aimerais tout de même savoir de quelle sport il s'agit, et pourquoi il est si important que les femmes ne soient jamais partenaires.
Parce que sans ces contraintes, ni les contraintes de terrains, à la pétanque, 26 joueurs en 9 manches ça se fait…
 

Pièces jointes

  • ListeAléat.xlsm
    113.5 KB · Affichages: 42
Dernière édition:

Mad

XLDnaute Nouveau
Bonjour,
Le tirage correspond bien aux conditions du post #24 et de ce qu'on fait pour chaque tournoi
- Chaque homme ne rencontre qu'une fois un autre homme
- Chaque femme ne rencontre qu'une fois une autre femme
L'amélioration que pourrait apporter un algo en plus du temps gagné (car avec des petits bout de papier c'est pas facile), c'est qu'il pourrait équilibré le nombre de fois ou une femme à comme adversaire le même homme :
- là on voit la joueuse 2 et 10 qui n'ont qu'une répétition alors que les autres sont à 2 ou 3
- il y a la joueuse 9 qui va jouer 3 fois contre l'homme 13
Pour le nombre de matchs total la solution est effectivement impossible mais on a toujours réussi à tricher (entre le nombre de participants impair, abandon, etc....).
Il s'agit de badminton.
 

Pièces jointes

  • TirageRéussiV2.xlsm
    93.4 KB · Affichages: 44
Dernière édition:

Statistiques des forums

Discussions
312 538
Messages
2 089 403
Membres
104 159
dernier inscrit
isbouk