Bonjour à tous.
J'ai une demande un peu spéciale et je ne trouve pas ce qui pourrait convenir. Mon algorithmique est un peu rouillée pour ce genre d'exercice, donc je m'adresse à Vous.
J'ai une demande pour un tournoi de pétanque Pro-Am.
Pour ceux qui comme moi ne connaissent pas le concept de Pro-Am, ce sont X professionnels de la pétanque qui vont jouer avec X amateurs un tournoi. Pour que les parties soient équilibrées, chaque équipe change à chaque tour. Et afin que ce soit équilibré d'avantage, les adversaires changent à chaque fois.
En exemple, si on a X=8 équipes, le premier tour donnera les matches suivants :
A 1 - B 2 C 3 - D 4 E 5 - F 6 G 7 - H 8
Ça, c'est la partie la plus simple.
Ensuite, il faut mixer les équipes, le tout afin de réaliser 7 tours pour que ça marche correctement. Je suis conscient que 8 équipes totalement différentes à chaque tour n'est pas possible, il y a un moment ou 2 pros finiront par se retrouver. Il faut juste éviter qu'ils ne se retrouvent plus qu'une fois.
J'avais imaginé générer tous les tours possibles, puis essayer toutes les possibilités avec des scores pour essayer de trouver celle avec le moins élevé.
Ma fonction qui compare les tours aux précédents fonctionne, et donne un score correct, mais je n'arrive pas à faire les générations des équipes.
Tour 1 A 1 B 2 C 3 D 4 E 5 F 6 G 7 H 8
Tour 2 A 2 B 3 C 4 D 5 E 6 F 7 G 8 H 1
Tour 3 A 3 B 4 C 5 D 6 E 7 F 8 G 1 H 2
Tour 4 A 4 B 5 C 6 D 7 E 8 F 1 G 2 H 3
Tour 5 A 5 B 6 C 7 D 8 E 1 F 2 G 3 H 4
Tour 6 A 6 B 7 C 8 D 1 E 2 F 3 G 4 H 5
Tour 7 A 7 B 8 C 1 D 2 E 3 F 4 G 5 H 6
Tour 8 A 8 B 1 C 2 D 3 E 4 F 5 G 6 H 7
J'ai une fonction de base qui génère les tours de base. Mais il existe encore plein d'autres combinaisons.
J'aurais donc besoin de votre aide pour cela.
J'ai donc X lettres pour les Pros.
J'ai les chiffres de 1 à X pour les Am.
J'espère que vous avez compris.
Je vous remercie d'avance.
Claude
Partager