[Résolu] Repartition des joueurs en poule

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [Résolu] Repartition des joueurs en poule

Re: Repartition des joueurs en poule

par tilowil » 15 févr. 2016, 00:19

Merci Beaucoup pour cette réponse @rtur.
Oui ta solution est bien meilleure que la mienne. Oui tu as tout bon pour le 53 joueurs. J'avoue que je n'ai pas pensé au modulo. Maintenant que j'ai la piste pour le dev je vais lancer ma boucle de recherche de la solution optimale.
Le modulo et les tests qui vont suivre va me permettre de coller à mes 3 règles de gestion pour l'optimisation.
Merci Beaucoup.

Re: Repartition des joueurs en poule

par @rthur » 14 févr. 2016, 22:43

Bonjour,

En fait, ce n'est pas vraiment un problème de développement mais plutôt un problème de mathématiques.
Par exemples :[...]
- j'ai 53 joueurs inscrit, le nombre maximum d’équipements est 15. La meilleure répartition est 8 poules de 6 joueurs et 1 poule de 5 joueurs car il y a un écart de seulement 1 joueur.
J'ai fait l'exercice et, selon moi, la meilleure répartition est de 5 poules de 9 joueurs et 1 poule additionnelle de 8 joueurs, j'ai bon ? ;)
- Les poules doivent être équilibrée au plus juste sans dépasser le nombre maximum d'équipement.
- il faut mettre le plus grand nombre de joueurs possible par poule.
Il faut que tu détermines quelle est la priorité dans les règles, est-ce de minimiser le nombre de poules ou d'avoir les poules les + équilibrées en nombre de joueurs ?


Je ne suis pas un expert en mathématiques et il y a probablement des outils mathématiques existant qui doivent permettre de faire cela de façon optimisée.
Mais si j'avais à le faire, je calculerai toutes les possibilités pour déterminer ensuite laquelle est la meilleure.

Je partirai du nombre d'équipements qui constitue le nombre de joueurs maximum dans une poule pleine, et je calculerai le nombre de joueur dans l'équipe supplémentaire grâce à l'opérateur Modulo qui se note % en PHP :
Exemple :
- 30 joueurs et 15 joueurs par poule : 30%15 = 0 ==> il y a 0 joueur dans la poule additionnelle.
- 53 joueurs et 15 joueurs par poule : 53%15 = 8 ==> il y a 8 joueurs dans la poule additionnelle.

Puis je ferrai la même chose en décrémentant de 1 le nombre de joueurs par poule pleine.
Et enfin, pour choisir la meilleure répartition, on choisit celui où la différence entre le nombre de joueurs par poule pleine et le nombre de joueur dans la poule additionnelle est le plus faible.

[Résolu] Repartition des joueurs en poule

par tilowil » 14 févr. 2016, 18:51

Bonjour à tous,
Je suis à la recherche d'un peu d'aide pour un problème que je rencontre sur le développement que je suis en train de faire pour l'association ou je suis bénévole. Je débute en PHP, même si j'ai l'habitude de faire des développements (pascal, C, C++).

Je vous explique mon problème.
Dans le cadre d'un futur tournoi de Laser Solo, je dois repartir, de la façon la plus optimisé, les joueurs inscrits dans des poules. Or j'ai 2 contraintes :
- Je ne peux pas dépassé le nombre maximum d’équipement disponible du centre (stocké en paramètre dans la base).
- Les poules doivent être équilibrée au plus juste sans dépasser le nombre maximum d'équipement.
- il faut mettre le plus grand nombre de joueurs possible par poule.

Par exemples :
- j'ai 80 joueurs inscrit, le nombre maximum d’équipements est 15. la meilleure répartition est 8 poules de 10 joueurs.
- j'ai 30 joueurs inscrit, le nombre maximum d’équipements est 15. La meilleure répartition est 2 poules de 15 joueurs.
- j'ai 53 joueurs inscrit, le nombre maximum d’équipements est 15. La meilleure répartition est 8 poules de 6 joueurs et 1 poule de 5 joueurs car il y a un écart de seulement 1 joueur. La solution 6p de 8j + 1p de 5j n’était pas viable car l’écart entre les poules et la dernière poule est trop grand.

Je ne cherche pas forcement un bout de code, mais surtout une piste, car je ne sais plus ou chercher la solution de ce petit problème que les habitués du php vont solutionner en quelques secondes.

Je fonctionne sur Raspberry Pi avec un debian 4.1.7, Apache, PHP 5, MySQL 5.5.46.

Si vous avez d'autres questions, j'apporterai les éclaircissements necessaires.

Merci par avance pour votre aide, vos pistes.