création d'un championnat

</HEAD><BODY bgcolor="#ffffff">Quelqu'un connait-il quel algorithme est utilisé pour la génération d'un championnat à N Equipe ? <BR>Utilisation d'arbre ? Matrice ? <BR><BR>C'est la génération des journées qui me pose problème. <BR>Car 2 equipes ne peuvent jouer l'une contre l'autre qu'une seule fois au cours des matchs aller et au cours d'une journée, toutes les équipes ont un adversaire. (sauf cas impairs) <BR><BR>Merci<BR><HR>

Réponses

  • <HTML></HEAD><BODY bgcolor="#ffffff">Va voir un peu du coté de la théorie des graphes...et/ou de l'optimisation linéaire comme dévellopée en methodes de recherche opérationnelle<BR>Si ca te parle biensur....:-)<BR>D'autres sur le forum verront ce que je veux dire et seront plus ameme de developper.<BR><BR>A+<BR>guillaume<BR><HR>
  • <HTML></HEAD><BODY bgcolor="#ffffff">Personne n'a de solutions car je n'ai qu'un BAC+2 info (suite à un BAC S spé Math). Et j'ai du mal a voir la chose.<BR>Peux-être avez vous un site à me conseiller ?<BR><BR>Merci<BR><HR>
  • <HTML></HEAD><BODY bgcolor="#ffffff">Voici une méthode pour organiser un championnat où chaque équipe<BR>rencontre toutes les autres :<BR><BR>Supposons n équipes avec n pair = 2k<BR><BR>On écrit d'abord la première journée :<BR>1er jour : 1 reçoit n, 2 reçoit n-1, 3 reçoit n-2.... k-1 reçoit k+2, k reçoit k+1<BR><BR>Puis pour chaque autre journée le match impliquant l'équipe n :<BR><BR>2ème jour : n reçoit k+1, etc.<BR>3ème jour : 2 reçoit n, etc.<BR>4ème jour : n reçoit k+2, etc.<BR>................<BR>................<BR>n-1ème jour : k reçoit n, etc<BR><BR>Ensuite, il faut expliciter les etc. de chaque ligne. Pour cela, il faut compter modulo n-1, c'est à dire considérer qu'après n-1 vient 1 (un anneau).<BR>Pour poursuivre la deuxième journée, on prend les deux équipes citées en antépénultième et avant dernière position de la première journée,<BR><BR>soit k+2 reçoit k<BR><BR>puis on poursuit la ligne en ajoutant 1 à l'équipe de gauche et en retranchant 1 à l'équipe de droite (en tenant compte de l'anneau !), ce qui donne<BR><BR>k+3 reçoit k-1, k+4 reçoit k-2, ..... jusqu'à 1 reçoit 2<BR><BR>Ensuite, on fait de même pour les journées suivantes.<BR><BR>Pour les matches retour, il n'y a qu'à inverser l'équipe qui reçoit.<BR><BR>En cas de nombre impair, on considère que n est une équipe fantôme et ce jour-là, l'équipe qui doit rencontrer n se repose.<BR><BR>J'espère que c'est clair.<BR>Il y a évidemment d'autres méthodes ....<BR><BR><BR><BR><BR><HR>
  • <HTML></HEAD><BODY bgcolor="#ffffff">Il y a un probleme plus contraignant: <BR><BR>Si ton nombre de terrains disponibles est limités !!!!<BR>et si le nombre d'equipe est impair...<BR>A+<BR>guillaume<BR><HR>
  • <HTML></HEAD><BODY bgcolor="#ffffff">Merci de m'aider.<BR><BR>Aldos désolé mais ton code ne fonctionne pas.<BR>Prend N=10 donc k=5.<BR><BR>Le calcul du 2ème match de la journée 5, j'obtiens Equipe 10 - Equipe 02.<BR>Alors que le 1er match de la 5ème journée donné Equipe 03 - Equipe 10.<BR><BR>Personne n'aurait une autre solution ?<BR><BR>Merci<BR><HR>
  • <HTML></HEAD><BODY bgcolor="#ffffff">Non, le chiffre 10 ne peut plus apparaître puisque l'on compte les<BR>9 premiers chifrres en anneau<BR>c'est à dire 9+1 =1<BR>et de même 1-1 = 9<BR><BR>Peut-être me suis-je mal exprimé ?<BR>J'espère qu'avec l'exemple c'est clair<BR><HR>
  • <HTML></HEAD><BODY bgcolor="#ffffff">Je ne pense pas...<BR>10 Equipes dans le championnat.<BR>Equipe1<BR>Equipe2<BR>Equipe3<BR>Equipe4<BR>Equipe5<BR>Equipe6<BR>Equipe7<BR>Equipe8<BR>Equipe9<BR>Equipe10<BR><BR>Donc il y a bien une equipe 10, non ?<BR><BR>Sinon je suis bien d'accord qu'il y a un roulement : 11 devient 1<BR><HR>
  • <HTML></HEAD><BODY bgcolor="#ffffff">Ok, on s'occupe du cas n=10<BR><BR>On règle définitivement le cas de de l'équipe 10 :<BR><BR>1ère journée : 1 reçoit 10<BR>2ème journée : 10 reçoit 63ème journée : 2 reçoit 10<BR>4ème journée : 10 reçoit 7<BR>5ème journée : 3 reçoit 10<BR>6ème journée : 10 reçoit 8<BR>7ème journée : 4 reçoit 10<BR>8ème journée : 10 reçoit 9<BR>9ème journée : 5 reçoit 10<BR><BR>Puis on écrit la 1ère journée :<BR>1ère journée : 1 reçoit 10, 2 reçoit 9, 3 reçoit 8, 4 reçoit 7, 5 reçoit 6<BR>On remarque que pour passer d'une rencontre à l'autre, on ajoute 1 à gauche et <BR>on retranche 1 à droite, c'est ce principe qu'on va continuer d'appliquer. <BR>Le tout est de trouver le premier match (hors l'équipe 10) de chaque journée. <BR>Pour cela, on prend <BR>les deux équipes situées en avant dernières positions de ligne précédente.<BR><BR>Ici, il s'agit des équipes 7 et 5 situées juste avant la dernière qui est 6.<BR><BR>On les garde dans cet ordre et on passe à la deuxième journée en gardant <BR>le match concernant l'équipe 10. Le match suivant sera 7 reçoit 5 :<BR><BR>2ème journée : 10 reçoit 6, 7 reçoit 5.<BR><BR>Pour le match suivant, on ajoute 1 à 7 et on retire 1 à 5, ce qui donne 8 reçoit 4 :<BR><BR>2ème journée : 10 reçoit 6, 7 reçoit 5, 8 reçoit 4.<BR><BR>On continue, le match suivant est 8+1 = 9 reçoit 4-1 = 3<BR><BR>2ème journée : 10 reçoit 6, 7 reçoit 5, 8 reçoit 4, 9 reçoit 3.<BR><BR>C'est maintenant que ça se corse : le match suivant est 9+1 reçoit 3-1.<BR><BR>Mais on applique 9+1 = 1. Le match est donc 1 reçoit 2<BR><BR>2ème journée : 10 reçoit 6, 7 reçoit 5, 8 reçoit 4, 9 reçoit 3, 1 reçoit 2<BR><BR>Puis on passe à la troisième journée avec donc 3 reçoit 1 (les deux<BR>équipes citées juste avant la dernière qui est 2.<BR><BR>3ème journée : 2 reçoit 10, 3 reçoit 1<BR><BR>Pour passer au match suivant, on ajoute 1 à 3 qui devient 4 et on retire 1<BR>à 1 qui devient donc 9, d'où 4 reçoit 9<BR><BR>3ème journée : 2 reçoit 10, 3 reçoit 1, 4 reçoit 9.<BR><BR>etc. pour la suite<BR><BR>Tu me dis si c'est clair. A bientôt<BR><BR><BR>.<BR><BR><BR><BR><BR><BR><BR><HR>
  • la méthode la plus simple pour créer les rencontres d'un championnat est celle derivée de la méthode dite du "pivot fixe".

    le principe est le suivant (exemple avec 10 équipes)
    ROUND 1 : les rencontres sont les suivantes
    1 10
    2 9
    3 8
    4 7
    5 6


    L'equipe n°10 est le pivot fixe, pour les ROUND suivants, on fait tourner d'un "cran" toute les équipes
    ROUND 2
    2 10
    3 1
    4 9
    5 8
    6 7


    ROUND 3
    3 10
    4 2
    5 1
    6 9
    7 8


    Et Caetera...

    Lorsque les équipes ont fait un tour complet, elle se sont toutes rencontrées entre elles 1 fois et 1 seule fois.
    Pour faire les matchs aller-retour, il suffit de faire 2 "tours"
    Pour alterner les matches à domicile et à l'exterieur, il faut alterner la colonne gauche "reçoit" avec la colonne droite "reçoit" entre chaque ROUND.

    Si vous avez un nombre impair d'équipe, il suffit d'introduire une équipe supplémentaire dite "Fantome" (qui pourra aussi être le pivot fixe).Lorqu'une équipe qui "tombe" sur l'équipe fantôme, elle ne joue pas au cours de ce ROUND.

    Les formules mathematiques sont les suivantes :
    si i est le n° round, et N le nombre total d'équipe (pair en ajoutant eventuellement une équipe fantôme)
    les rencontres sont les suivantes :

    rencontre 1 : [ i % (N-1) ] contre N ---> rencontre du pivot fixe
    rencontre 2 : [ (i+1) % (N-1)] contre [ (i+N-2) % (N-1) ]
    rencontre 3 : [ (i+2) % (N-1)] contre [ (i+N-3) % (N-1) ]
    ....
    rencontre K : [ (i+(K-1)) % (N-1)] contre [ (i+N-K) % (N-1) ]
    ...
    rencontre N/2 : [(i+N/2-1) % (N-1)] contre [ (i+N/2) % (N-1)]

    remarques :
    - % est fonction modulo décalée (ie si (x modulo y) = 0 alors (x % y) = y sinon (x%y) = (x modulo y) )
    - il y a (N-1) ROUND
    - il y a N/2 rencontre par ROUND
  • Bonjour sly.

    Juste une remarque sly - car je suis d'accord avec ta méthode que j'ai employée régulièrement et Aldo aussi à mon avis ! - il faut préciser qui reçoit (L) et qui se déplace (V). On peut prendre dans ton cas et pour les matches aller
    L*-V*
    V-L
    L-V
    V-L
    L-V
    Sauf que le pivot dans ce cas se déplacerait toujours. Pas bon pour le public.
    Donc sur la première ligne on alterne. Par exemple L-V pour les journées impaires et V-L pour les journées paires.

    Dans la pratique, cette mise en place va plus vite que la lecture des tables de Berger.

    amicalement,

    e.v.
    Personne n'a raison contre un enfant qui pleure.


Connectez-vous ou Inscrivez-vous pour répondre.