A la recherche de l'algo...

Maxwell -  
 Maxwell -
Salut à tous.

En gros, je cherche à trier une table. Cette table contient des inscriptions à un concours et je voudrais la classer dans l'ordre de passage des participants.
La ou j'ai un probleme,c pour determiner cet ordre, étant donné qu'un participant peux passer plusieurs fois (jusqu'à 3 inscriptions): il faut donc classer la table de maniere à ce que chaque participant puisse se reposer entre chaque passage.

Voila, c'est l'axe principal de mon casse tête (il est un peu plus tordu en fait), et je sais pas comment l'attaquer... je serai ravi d'étudier la moindre piste ;P alors faites chauffer vos neurones! =P

(je devrai transcrire cet algo en php-mysql pour info:)

12 réponses

Kuching Messages postés 2702 Statut Contributeur 157
 
Salut,

Qu'entend-tu par repos?

A+  K.
Sauvez les vers de terre, bouffez du poulet aux eaulives!
0
Maxwell
 
Ben en fait, il s'agit de concours d'équitation, et entre chaque passage d'un cavalier ou d'un cheval, celui ci doit pouvoir se reposer: on en profite alors pour faire passer d'autres candidats.

D'une maniere générale, les passages se font en continu et il serait bon d'avoir une 10aine de passages avant de revoir un cavalier ou une monture (pour info un cavalier peut passer autant de fois kil veut, du moment qu'il monte un cheval different à chaque fois. C la meme chose pour les chevaux, mais eux sont limités à 3 passages). Peut etre qu'un petit exemple illustrerait mieux tout ca:
-3 Cavaliers: Toto, Tata & Titi
-2 montures: Pétouzet et JollyJumper
-4 inscriptions: Toto sur Pétouzet
Toto sur JollyJumper
Titi sur JollyJumper
Tata sur Pétouzet
C la ke je dois trier les ordres de passages pour avoir par exemple:
1) Toto sur JollyJumper
2)Tata sur Petouzet
3)Titi sur JollyJumper
4)Toto sur Petouzet

Résultat: aucun cheval ni cavalier ne doit passer 2 fois d'affilé. Bon la c un peu ballot, vu kil n'y a ke 4 inscriptions, mais en vrai yen a une 50aine voir plus et on devrait alors pouvoir placer une 10aine de passage entre chaque "repassage".

Voila messieurs dames j'espere avoir été suffisament explicite. N'hesitez pas a me demander des precisions je serai ravi de ne pas avoir a me pencher tout seul sur ce probleme :)
0
teebo Messages postés 33570 Date d'inscription   Statut Modérateur Dernière intervention   1 793
 
Amusant ton truc :o)
Je fais travailler mes neurones et je repasse quand j'ai des idees concretes ;-)

.  .
\_/
0
primal Messages postés 489 Statut Membre 97
 
argh!
mon unique neurone ne suffira pas!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Maxwell
 
héhé le mien non plus n'a pas lair de suffire :P Faut dire ke ces derniers temps je le fais chauffer ce salopio...
Sympa de vous interresser a mes soucis en tout cas.

(le plus dur jai l'impression, c kil doit falloir trier en fonction des cavaliers ET des montures simultanement, et pas d'abord l'un, puis l'autre. ou sinon peut etre ken "randomizant" la liste jusqu'a ce ke ce soit bon... l'algo de verification doit etre bien plus simple mais alors la pour le temps ke ca peut prendre... en plus si par malheur ya pas de "bonne" combinaison possible on s'en sort plus... dans ce cas la il faudrait un algo pour verifier kil y ait une combinaison possible.... ouuuuuulalala mon pauvre neurone !...)

Et vive la masturbation intellectuelle, c mieux d'avoir le cerveau ki colle ke les mains =P
0
teebo Messages postés 33570 Date d'inscription   Statut Modérateur Dernière intervention   1 793
 
Pour ce que ca vaut:
Faire une vue avec le nombre de passages par cavalier
Faire une vue avec le nombre de passages par cheval
(triees par ordre decroissant les vues)
Faire une vue avec la somme des passages du couple

Bon ca permet d'avoir plus de donnees sous la main, apres je pense qu'il faut creer des groupes de 10 avec une regle que dans un groupe de 10 tu ne peux avoir qu'une fois chaque cavalier et chaque monture
Une fois ton premier groupe de 10 termine, recreer un groupe de 10 avec les 9 derniers couples du premier groupe...
Bon ca donne des pistes hein, pas la solution :o)

.  .
\_/
0
Maxwell
 
En voila une bonne idée :)

Je viens de la lire vite fait et ca me semble etre une bonne piste mon cher. Je me suis pas plongé dedans, je viens juste de la lire, mais je comprends pas trop kan tu me dis:
>> "Faire une vue avec la somme des passages du couple "

Un couple Cavalier/Cheval ne peut se presenter qu'une seule fois. Ensuite le cavalier peut se re-presenter couplé à une autre monture, et le cheval pourra etre re-presenté, monté par un autre cavalier.

De plus, chapeau bas:
Une fois ton premier groupe de 10 termine, recreer un groupe de 10 avec les 9 derniers couples du premier groupe...
Ca c une grande idée !! ;)
0
teebo Messages postés 33570 Date d'inscription   Statut Modérateur Dernière intervention   1 793
 
Merci merci, monsieur est trop bon :o)
Ce que j'entend par couple, c'est si ton cavalier A passe avec 5 chevaux et que un de ces chevaux est le cheval A qui passe avec 3 cavaliers, alors la valeur du couple A/A est 8, ca sert a faire passer le cheval A avant le cheval B de ce meme cavalier si le cheval B ne passe que une ou deux fois...
Le principe est que plus un couple est complique a caser parce qu'il passe plusieurs fois independament l'un de l'autre, plus il faut le mettre devant...

.  .
\_/
0
Maxwell
 
yabon yabon yabon

Soit n le nombre de couples à placer entre chaque repetition d'un membre d'un couple.

Soit COUPLE(membre1,membre2) la table des couples et VALEUR(COUPLE,valeur) la table qui contient les valeurs de chaque couple, comme explicité susditement ,classée par ordre décroissant & orientée dans le sens du vent (heu?allé courage on suit).

Soit TAMPON(couple) une table temporaire dans laquelle on va placer n+1 couples de façon à ce qu'aucun membre du couple ne soit présent plus de 2 fois.

Et enfin la table resultante ORDRE(couple) classée selon l'ordre de passage (:^p).

Le but c de parcourir la table VALEUR séquentiellement et en boucle, tout en remplissant TAMPON.
Une fois qu'il est plein, on met TAMPON(1) a la suite dans ORDRE et on decale dans TAMPON pour reliberer la derniere place.

Chaque couple est transféré d'une table à l'autre: une fois kun couple est casé, il est supprimé de la table source.

Si on ne peut plus remplir TAMPON (ca boucle dans VALEUR sans trouver un couple valide), alors n est trop grand et on recommence avec n=n-1.
Si n<3 alors il est (je pense) impossible de classer les couple sans qu'aucun membre n'ai à passer au moins 2x d'affilé (aucune combinaison possible).

Wouhou. Je vais essayer ca pour voir...
Sur le papier ca a l'air de marcher en tout cas (hum).

Merci a toi teebo ;)
Que les Grands Seins de l'Informatique te protegent.
0
teebo Messages postés 33570 Date d'inscription   Statut Modérateur Dernière intervention   1 793
 
Les Seins ou les Saints? :-DDDD

.  .
\_/
0
Maxwell
 
A toi de choisir mon jeune ami ... ;P

En tout cas tu connnais mon point de vue, ct pas une faute de frappe...:D
0
teebo Messages postés 33570 Date d'inscription   Statut Modérateur Dernière intervention   1 793
 
C'etait le sens de ma question ;-)

.  .
\_/
0
Maxwell
 
Ho, je comprends que tu ais pu douter et te sentir suspicieux suite à mes propos relatifs à la masturbation, mais sache ke je me reserve exclusivement le coté intellectuel de la chose.

Pour le reste, je délegue.

;DD
0