un tablo de match dans une poule - Algo - Programmation
Marsh Posté le 21-06-2004 à 13:19:57
non, y'a pas d'algo à ma connaissance.
à un moment donné c'est pas possible d'empêcher 2 matchs d'affilée...
1 et 2
3 et 4
-- ici, impossible de faire jouer un match sans faire jouer 3 ou 4...
1 et 3
2 et 4
1 et 4
2 et 3
c'est un bête combinatoire...
Marsh Posté le 23-06-2004 à 00:11:25
je suis désolé mais je ne vois pas comment faire celà.
faut il que je fasse jouer i contre i+1, faire ts les matchs puis
i contre i+2, etc
pourriez vous m'aider svp.
merci d'avance
Marsh Posté le 23-06-2004 à 09:15:44
tu fais de l'aléatoire en vérifiant a posteriori les contraintes sur les matchs (match déjà joué, équipe déjà joué au tour dernier etc...)
comme ce n'est pas des poules de 456 365 équipes, ça va vite et c'est efficace !
(bon c vrai que c'est pas super beau...)
Marsh Posté le 23-06-2004 à 09:24:07
heu...
pour i allant de 1 à nb_d'équipe
pour j allant de i+1 à nb_d'équipe
i contre j
fin pour
fin pour
Marsh Posté le 23-06-2004 à 09:37:20
Dr Raf a écrit : heu... |
Là tu as une équipe qui joue tous ses matchs à la suite, c'est pas très sympa pour elle!
Marsh Posté le 23-06-2004 à 09:40:17
boah si je le nombre d'équipe est fixe tu fais un 2 vecteur pis c'est tout...
v1 = 1, 3, 1, 2, 1, 2
v2 = 2, 4, 3, 4, 4, 3
Marsh Posté le 23-06-2004 à 09:49:49
skeye a écrit : Là tu as une équipe qui joue tous ses matchs à la suite, c'est pas très sympa pour elle! |
justement c fait expres, c permet d'eviter les coupures et de rester chaud
bon je retente ma chance :
|
edit : thx skeye
Marsh Posté le 23-06-2004 à 09:52:34
Dr Raf a écrit : justement c fait expres, c permet d'eviter les coupures et de rester chaud
|
Il sort d'où ton "i+j < 5" ?
[edit]
Avec une poule de 10 équipes on est pas dans la merde...:whistle:
Marsh Posté le 23-06-2004 à 09:54:34
de ma tête lol... nan dsl javais un exemple dans la tet c'est nb_eq autant pour moi
Marsh Posté le 23-06-2004 à 09:56:00
Dr Raf a écrit : de ma tête lol... nan dsl javais un exemple dans la tet c'est nb_eq autant pour moi |
dans ce cas tu vas avoir des matches en double, là!
Marsh Posté le 23-06-2004 à 09:56:56
et t'as des matches ou une équipe joue contre elle-même...:lol:
Marsh Posté le 23-06-2004 à 10:01:30
donc si je me suis pas encore gourré (les billets pour le mexique sont prêts ^^') ca nous fait :
1 vs 2
2 vs 3
3 vs 4
4 vs 5
1 vs 3
2 vs 4
3 vs 5
1 vs 4
2 vs 5
1 vs 5
edit : avec nb_eq = 5
Marsh Posté le 23-06-2004 à 10:02:10
En effet c'est nettement mieux comme ça...
Marsh Posté le 23-06-2004 à 10:07:43
sauf que 1 joue toujours à domicile...
edit : et 5 à l'extérieur...
Marsh Posté le 23-06-2004 à 10:14:23
titione a écrit : sauf que 1 joue toujours à domicile... |
fallait le dire avant hien
edit : au pire tu case un bolleen dans le while
Marsh Posté le 23-06-2004 à 10:16:37
moi je m'en fiche... c juste une remarque...
Marsh Posté le 23-06-2004 à 10:30:47
euh le pb c'est que je ne veux pas qu'une equipe joue 2 fois a la suite or la. c'est le cas a chaque fois pour les premiers matchs...
sinon c'est vraiment sympa de m'aider...
Marsh Posté le 23-06-2004 à 10:31:41
chaos0007 a écrit : euh le pb c'est que je ne veux pas qu'une equipe joue 2 fois a la suite or la. c'est le cas a chaque fois... |
C'est impossible, on te dit!
JagStang a écrit : non, y'a pas d'algo à ma connaissance. |
Marsh Posté le 23-06-2004 à 10:39:29
skeye a écrit : C'est impossible, on te dit! |
ben a priori, avec un nombre d'equipes impair, c'est possible.
a moins que je ne me sois trompe, avec 5 equipes ca donne :
1 et 2
3 et 4
1 et 5
2 et 3
1 et 4
3 et 5
2 et 4
1 et 3
2 et 5
mais bon, ca je l'ai fait a la main, je cherche encore l'algo pour y arriver.
v.
Edit: ben non, ca marche pô avec 3... j'vais essayer avec 7 !
Marsh Posté le 23-06-2004 à 10:45:25
vonm a écrit : ben a priori, avec un nombre d'equipes impair, c'est possible. |
c impossible à priori vu que tu peux caser nul part "4 et 5" sans "toucher" un "4" ou "5" dans ta liste
Marsh Posté le 23-06-2004 à 10:49:56
Dr Raf a écrit : c impossible à priori vu que tu peux caser nul part "4 et 5" sans "toucher" un "4" ou "5" dans ta liste |
si, avant 1 contre 2!
Marsh Posté le 23-06-2004 à 10:53:22
Dr Raf a écrit : c impossible à priori vu que tu peux caser nul part "4 et 5" sans "toucher" un "4" ou "5" dans ta liste |
oups !
oublié 4 et 5 !
la combinaison finale devient donc :
4 et 5
1 et 2
3 et 4
1 et 5
2 et 3
1 et 4
3 et 5
2 et 4
1 et 3
2 et 5
mais je vois toujours pas l'algo.
v.
Marsh Posté le 23-06-2004 à 11:06:18
skeye a écrit : si, avant 1 contre 2! |
arg décidement
nan mais en faite c'est une longue histoire : pour 5 equipe il doit y avoir 10 matchs et là il en manquait un ! j'ai cru par la suite que le match manquant (pas assez de rigueur dans l'examination sans doute) etait "2 et 5", ceci entrainant cela j'ai pas reussi à le caser lui donc voila. mais les choses ne s'arrete pas la puisque, vérifiant mon poste, je me suis apercu de mon erreur, j'ai donc vite fait de trouver la bon match manquant et apres une trop petite vérification j'ai posté. et sinon vonm pourquoi tu ne veux absolument pas qu'une équipe joue deux fois de suite ???
Marsh Posté le 23-06-2004 à 11:08:36
Dr Raf a écrit : arg décidement |
heuuu...
c'est pas moi, je me contente de chercher des solutions !
faut demander ca a chaos0007 !
a mon avis, c'est parce qu'on joue pas au foot qu'on pose ce genre de questions (faineant va ! )
v.
Marsh Posté le 23-06-2004 à 11:32:13
ha woué
bon ben heu déjà si ca marche qu'avec certains nombres d'équipes impair ca sert à rien de faire un algo...
Marsh Posté le 23-06-2004 à 12:52:52
en fait je sais que ca ne marche pas pour ttes les longueurs de poule. l'exemple trivial est la poule de 3 équipes. Mais en fait c'est qu'il faudrait l'éviter au maximum mais ce n'est pas évident je sais. je me contenterai de cette solution là pour le moment.
merci à tous de votre aide
Marsh Posté le 28-07-2004 à 15:10:25
Salut Chaos,
Je cherche moi-même des infos sur le même sujet. Je dois déterminer l'ordre des matchs pour un concours en groupes pour la pétanque. Il faut que toutes les équipes jouent l'une contre l'autre, et toutes en même temps. Il n'y a jamais des équipes qui ne jouent pas (sauf une si le nombre est impair).
Au début 2004, je me suis écrit un algo en visual basic que me sortait tout ça, en utilisant la méthode du backtracking. Les groupes peuvent aller de 4 à n équipes. Il y a toujours un nombre d'équipes pair. Si le nombre est impair, il suffit d'ajouter une équipe fantôme et elle correspondra au match de repos.
Mon algo me sort les résultats de 4 à 22 en moins d'une seconde. Par contre, ensuite :
- 24 équipes : 12 sec
- 26 équipes : 29 min
- 28 équipes : 2 jours 12 heures
- 30 équipes : 3 mois et pas encore fini; à ce rythme y en a pour 3 siècles (sisi)
- 32 équipes : < 1 sec (en fait, toutes les puissances de 2 sont à moins d'1 sec)
Je me demandais donc si tu as de ton côté trouvé un algo (rapide) pour calculer les matchs. Je suis particulièrement intéressé pour la liste des matchs pour un groupe de 30 équipes.
Si tu veux, je peux te filer mon algo.
Exemple de résultat pour 12 équipes :
L'équipe de la ligne l joue sont n-ième match contre l'équipe de la colonne c
n | 1 2 3 4 5 6 7 8 9 10 11 12 |
Chaque équipe joue 11 matchs (12-1) et il y a 6 matchs (12/2) à chaque tour.
Marsh Posté le 21-06-2004 à 13:08:13
Bonjour,
voilà je dois réaliser un algorithme pour construire un tableau de match dans une poule. Je voulais savoir si il existait un algorithme car je ne vois pas comment le réaliser. Les règles sont simples : toutes les équipes doivent se rencontrer et on doit eviter que les equipes ne jouent 2 fois d'affilé.
pouvez vous m'aider ?
merci d'avance