un tablo de match dans une poule

un tablo de match dans une poule - Algo - Programmation

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

Reply

Marsh Posté le 21-06-2004 à 13:08:13   

Reply

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...
 
[:spamafote]


Message édité par jagstang le 21-06-2004 à 13:20:53

---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

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

Reply

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...)

Reply

Marsh Posté le 23-06-2004 à 09:23:48    

ca me parait vaiment bourin comme metode

Reply

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

Reply

Marsh Posté le 23-06-2004 à 09:37:20    

Dr Raf a écrit :

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


Là tu as une équipe qui joue tous ses matchs à la suite, c'est pas très sympa pour elle!:o


---------------
Can't buy what I want because it's free -
Reply

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


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

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!:o


 
justement c fait expres, c permet d'eviter les coupures et de rester chaud  :)  
 
 
 
 :D  
 
 
bon je retente ma chance :
 


pour j allant de 1 jusqu'a nb_eq - 2
 
     i = 1
 
     tant que i + j n'est pas supérieur à nb_eq
 
          i contre i + j
 
          i = i + 1
 
     fin tq
 
fin pour


 
 
 
edit : thx skeye


Message édité par Dr Raf le 23-06-2004 à 10:05:29
Reply

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  :)  
 
 
 
 :D  
 
 
bon je retente ma chance :
 


pour j allant de 1 jusqu'a nb_eq - 2
 
     i = 1
 
     tant que i + j n'est pas supérieur à 5
 
          i contre j
 
          i = i + 1
 
     fin tq
 
fin pour




Il sort d'où ton "i+j < 5" ? :heink:
 
[edit]
Avec une poule de 10 équipes on est pas dans la merde...:whistle:


Message édité par skeye le 23-06-2004 à 09:53:20

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 23-06-2004 à 09:52:34   

Reply

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 :jap:

Reply

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 :jap:


dans ce cas tu vas avoir des matches en double, là!:o


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 23-06-2004 à 09:56:56    

et t'as des matches ou une équipe joue contre elle-même...:lol:


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 23-06-2004 à 09:57:50    

javé oublié un truc g corriger :o

Reply

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  :whistle:


Message édité par Dr Raf le 23-06-2004 à 10:02:13
Reply

Marsh Posté le 23-06-2004 à 10:02:10    

En effet c'est nettement mieux comme ça...;)


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 23-06-2004 à 10:03:50    

thx :jap:

Reply

Marsh Posté le 23-06-2004 à 10:07:43    

sauf que 1 joue toujours à domicile... :)
 
edit : et 5 à l'extérieur...


Message édité par titione le 23-06-2004 à 10:08:02
Reply

Marsh Posté le 23-06-2004 à 10:14:23    

titione a écrit :

sauf que 1 joue toujours à domicile... :)
 
edit : et 5 à l'extérieur...


 
 :lol:  
 
fallait le dire avant hien  :fou:
 
edit : au pire tu case un bolleen dans le while  :o


Message édité par Dr Raf le 23-06-2004 à 10:16:45
Reply

Marsh Posté le 23-06-2004 à 10:16:37    

moi je m'en fiche... c juste une remarque... ;)


Message édité par titione le 23-06-2004 à 10:16:46
Reply

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...


Message édité par chaos0007 le 23-06-2004 à 10:31:50
Reply

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...
sinon c'est vraiment sympa de m'aider...


C'est impossible, on te dit!

JagStang a écrit :

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...
 
[:spamafote]


---------------
Can't buy what I want because it's free -
Reply

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 !


Message édité par vonm le 23-06-2004 à 10:40:55
Reply

Marsh Posté le 23-06-2004 à 10:45:25    

vonm a écrit :

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 !


 
c impossible à priori vu que tu peux caser nul part "4 et 5" sans "toucher" un "4" ou "5" dans ta liste  :D

Reply

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  :D


si, avant 1 contre 2!:o


---------------
Can't buy what I want because it's free -
Reply

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  :D


 
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.

Reply

Marsh Posté le 23-06-2004 à 11:06:18    

skeye a écrit :

si, avant 1 contre 2!:o


 
arg décidement  [:tinostar]  
 
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 ???


Message édité par Dr Raf le 23-06-2004 à 11:07:37
Reply

Marsh Posté le 23-06-2004 à 11:08:36    

Dr Raf a écrit :

arg décidement  [:tinostar]  
 
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 ???


 
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.


Message édité par vonm le 23-06-2004 à 11:16:13
Reply

Marsh Posté le 23-06-2004 à 11:32:13    

ha woué :D
 
bon ben heu déjà si ca marche qu'avec certains nombres d'équipes impair ca sert à rien de faire un algo...


Message édité par Dr Raf le 23-06-2004 à 11:32:59
Reply

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

Reply

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
--+-----------------------------------------------
1 |     1   2   3   4   5   6   7   8   9   10  11
2 |         3   2   5   4   7   6   9   8   11  10
3 |             1   10  11  8   9   4   5   6   7
4 |                 11  10  9   8   5   4   7   6
5 |                     1   2   3   6   7   8   9
6 |                         3   2   7   6   9   8
7 |                             1   10  11  4   5
8 |                                 11  10  5   4
9 |                                     1   2   3
10|                                         3   2
11|                                             1


Chaque équipe joue 11 matchs (12-1) et il y a 6 matchs (12/2) à chaque tour.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed