begin process at 2010 03 19 15:41:40
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

algorithm


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

algorithm

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

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,671 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales