Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : algorithm [ Archives / Au secours ] (lilington)

vendredi 27 mai 2005 à 19:37:16 | algorithm

lilington

Salut je but sur un problème d'algorithme:
je cherche à confectionner un calentrierde match aller d'un championat de football
on note que si le nbe d'équipe entré est impère on a automatiquement une equipe ajouté qui se nomera "ex"
par exemple si on a 5 équipe on aura :
t[0]="A",t[1]="B",.....,t[4]="E" et t[5]="ex" equipe ajouté pour avoir un nbr paire d'équipe pous on a la liste des match pssible:
 0-1    0-2     0-3    0-4    0-5   1-2   1-3   1-4   1-5    2-3   2-4   2-5   3-4   3-5      4-5
A-B   A-C   A-D   A-E   A-ex  B-C  B-D B-E   B-ex C-D  C-E C-ex  D-E  D-ex   E-ex

le travail consiste a générer un calendrier séparé en journées dans lesquelles toutes les équipes s'affrontent 2 à 2 et aucune équipe ne joue 2 fois dans la même journée et aucun match ne doit être redondant dans le calendrier ex:

journée 1:     journée 2:
A-B               A-C
C-D               D-E
E-ex               B-ex

et ainsi de suite.
j'en ai fait un mais il ne fonctionne corectement qu'avec 4 équipes (disons que mon alogo était fait en fonction de 4 ) je cherche à le généraliser pour N équipe avec N dans [1,20]


j'espère avoir été claire dans mes explications.


vendredi 27 mai 2005 à 23:51:45 | Re : algorithm

ctx_man

Bonjour,
Si je me souvien bien de mes cours de maths, ton problème de probabilité se resoud par la formule suivante : nCp
n = nombre d'equipe.
p = nombre d'equipe par match (donc 2).

Pour le cas ou tu ne saurai pas ce que veux dire cette formule tu peux la remplacer par :
n!/(p!(n-p)!)

Toujours pour le cas ou tu ne saurais pas ce que veux dire la notation n!
On dit "factoriel n" et c'est un calcul simple qui consiste a multiplier l'entier naturel n par chacun des entier naturels non nul inférieur à lui.
Exemple:
4! = 4*3*2*1 = 24

Grace à cette formule tu peux connaitre la liste complete de tous les matchs possibles.
Cependant il est impossible d'effectuer tous les match en deux jours si chacune des equipe ne peut jouer qu'une seule fois par jour. Dans ton exemple tu as oublier le match A-D, tu le met ou ?


samedi 28 mai 2005 à 04:08:57 | Re : algorithm

lilington

merci pour la réponse mais on sais pas bien compris
1/ soit nCp règle peut être mon problème mais moi j'ai déjà touvé ma formule pour le nombre de match possible soit  Nx(N-1) /2  pour les matchs en aller simple et Nx(N-1) pour les matches en aller retour avec N= nombre d'équipe
2/ il n'a jamais été question de faire ça en 2 journée c'étais un example pour expliquer ce que je voulais il n'était donc pas complets j'ai aussi ma forlume pour trouver le nb de journée soit:       2N-2  c'est le nombre de journée pour un championat aller retour il va du bon sens que le nombre de journée aller est N-1

donc je reformule ma question:
 comment obtenir la matérialisation de nCp ou de Nx(N-1) /2 donc tous les cas possible
je vais le faire pour 4 équipes mais je demande un algo qui est général:
soit 4équipes : nice ,psg,nante,lyon
jai donc nbrtotal de mach= 4*3=12 total de match aller=12/2=6 nb de journée=6 et à l'aller 3 ,nbr de match par journée=N/2=2
voici une situation des 3 journées:

journé1                  journée 2                    journée 3

nice - psg             nice - nante              nice - lyon
Lyon-nante           psg-Lyon                 psg-nante

ça je l'ai fait à vu d'oeil le problème c'est que je veux un algo j'en fais des 10aine mais il y a toujours une érreur quelqu'un peu m'aidé?
sachant que j'ai déja rangé les 6 match possible dans un tableau le seul problème est de répartir ces 6 matchs en 3journée (plus généralement c'est xmatch en y journée) sans qu'aucune équipes ne joue 2 fois dans la même journée et sans qu'aucun match n'apparaisse 2 fois voici pon tableau :
tbmatch[6]={1,2,3,12,13,23} avec 1 signifi 0 contre 1
2=  0 contre 2 ..... 23= 2 contre 3
pour les retrouvé: équipe a= tbmatch[i]/10;équipe b= tbmatch[i]%10

dans notre cas si nice=0 psg1,lyon 2 et nante 3
la question est comment obtenir le tableau suivant: calendrier[6]={1,23,3,12,2,13}c'est la copy des 3 journées dans un tableau.

 j'espère que cette fois il n'y a pas d'anbiguité sur mon problème et que vous aurez compris où se trouvent mes difficultés?


samedi 28 mai 2005 à 15:57:09 | Re : algorithm

lilington

bon après quelques corrections sur mes algo déjà présent j'ai enfin trouvé je vous prénsenterai le résultat dans ma prochaine source (probablement pour Pocket PC) mais n'hésité pas si vous avez des algos à me proposer.

samedi 28 mai 2005 à 21:51:05 | Re : algorithm

Joky

Membre Club
Je tiens à rappeler que si Nice joue 3 fois de suite à domicile ça risque de faire chier le championnat lol

void Aurevoir( void ); //Bonne journée


samedi 28 mai 2005 à 22:29:37 | Re : algorithm

lilington

lol c'est vrai mais une fois le calendrier bien défini il est facile de régler cette histoire de domicile extérieur.
sinon viva le FCNA  tous avec Nante


dimanche 29 mai 2005 à 21:18:47 | Re : algorithm

cosmobob

Réponse acceptée !
salut,
voici un algorithme simple qui marche:
si tu as un nombre pair d'équipes (si c un nombre impair tu ajoutes une equipe "fantome" et qd on joue contre elle, on est exempt), par exemple 10:
tu ecris un tableau de 2 lignes et 5 colonnes comme ca:
1 2 3 4 5
6 7 8 9 10

la premiere journée: 1 vs 6, 2 vs 7, 3 vs 8, 4 vs 9, 5 vs 10  (cad premiere ligne contre 2e ligne en restant ds la meme colonne)

puis tu fais pivoter les nombres du tableau precedent en gardant fixe l'equipe 1:
1 6 2 3   4
7 8 9 10 5

journée 2 : 1 vs 7, 6 vs 8, 2 vs 9, 3 vs 10, 4 vs 5

tu continues:
1 7 6   2 3
8 9 10 5 4

etc ...
tu peux t'assure facilement qu'il est sur de pas avoir de journées redondantes, et que chaque équipe joue contre toutes les autres.
pour les matchs retours, tu prends le miroir des matchs allers ....

a+


dimanche 29 mai 2005 à 21:21:36 | Re : algorithm

cosmobob

j'entends par 'pivoter' faire tourner les nombres ds le sens des aiguilles d'une montre. (ca marche aussi dans l'autre sens hein, l'important et qu'on déduise chaque journée de la précedente en gardant le meme sens)

lundi 30 mai 2005 à 13:21:45 | Re : algorithm

lilington

Mon algo à moi est beacoup plus compliqué que le tiens je vais donc opter pour le tien merci beaucoup je gagne énormément de temps.



Cette discussion est classé dans : ex, équipe, match, journée, algorithm


Répondre à ce message

Sujets en rapport avec ce message

IMPRIMANTE ? [ par myopman ] Je cherche à imprimer des données en C++ (Une chaine de caractères par ex) mais je suis en manque d'inspiration pour ce qui est du code! Avez vous une processus sous linux [g++] [ par satanik_mike ] Bonjour,Je suis en train de d?velopper un serveur POP, SMTP en C++ sous linux, mais je bloque sur une petit probl?me d'ex?cution.J'ai fait un ex?cutbl On recherche des porgrammeurs [ par Ricpperso ] Bonjours à tous, on recherche deux programmateurs expérimenté en C++ et en VB6. Pour faire partie de l'équipe du site que un ami et moi faisons, il pr Recherche programmeurs en C++ pour participer a un projet d'équipe ! [ par MASTERADGE ] Bonjour a tous et joyeux Noel !Je poste ce message car en fait je suis a la recherche de programmeurs DELPHI et C++ bénévoles ayant un peu de temps li API: WS_EX_TOPMOST ca marche pas .. (en tout cas chez moi:() [ par JackosKing ] Bon alors voilà, je debute avec les api (avant j'utilisais MFC, mais ca ma un peu gaver...), et je voulais reprendre une sources de cpp france pour vo besoin d'aide pour un RPG 2D [ par LightningFlik ] Nous sommes une petite équipe qui essaye de créer notre jeu : Asgard Wars. Il s'agira d'un Action-RPG (du genre Secret of Mana) dans un univers médiév De char[] vers flot ?? [ par supergrey ] Bonjour, je voudrai savoir si il existe une fonction pour passer d'une chaine de caractere (ex: "12.4") vers un float (ex:12.4f)Merci d'avance... Pattern Matching [ par gazzall ] Bonjour,Je fais un programme qui compare si des programmes fait par des etudiants sont des copies ou non en clair si un etudiant a copier sur un autre copie d'un controle [ par didrocks ] Salut!J'ai un peu recherché dans le forum et il ne semble pas avoir de réponse précise à ce type de question. Donc, je la pose:J'ai créé une boite de Equipe de développement de jeu vidéo recherche programmeurs [ par Johann21 ] Nous sommes une équipe de développement de jeu vidéo en constitution. Nous travaillons actuellement à la réalisation d'un jeu d'action / aventure dest


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,359 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.