Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Discussion :

Meilleure formule de tournoi suivant le nombre de joueurs


Sujet :

Algorithmes et structures de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    juin 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : juin 2019
    Messages : 8
    Points : 12
    Points
    12
    Par défaut Meilleure formule de tournoi suivant le nombre de joueurs
    Bonjour,
    Pour l'organisation de tournois, j'essaie, en fonction du nombre de joueurs inscrits, de trouver la meilleure formule.

    Pour le moment, on limite aux jeux en duels (2 joueurs ou 2 équipes).
    Pour le moment, je détermine uniquement le 1er tour.

    Je me suis mis les contraintes suivantes:
    * Dès qu'on peut faire des poules (max 5 par poule), on le fait. Ca permet de déterminer plusieurs matchs à l'avance, et donc chacun gère. L'organisateur joue aussi!
    * Dès qu'on peut faire 4 poules, on le fait.
    * voir d'autres dans le code ici https://3v4l.org/6c7uK

    Que pensez-vous des formules obtenues?
    Svp ne répondez pas "Ca dépend de l'objectif recherché...". Donnez votre avis.

    Jusqu'à 30 joueurs, ça donne ceci:
    0 = No match!
    1 = No match!
    2 = Every player battles the other players.
    3 = Every player battles the other players.
    4 = Every player battles the other players.
    5 = Every player battles the other players.
    6 = 2 groups with 3 players each.
    7 = swiss system with 3 rounds. Some players play only 2 matchs.
    8 = 2 groups with 4 players each.
    9 = 3 groups with 3 players each.
    10 = 2 groups with 5 players each.
    11 = swiss system with 4 rounds. Some players play only 3 matchs.
    12 = 4 groups with 3 players each.
    13 = swiss system with 4 rounds. Some players play only 3 matchs.
    14 = swiss system with 4 rounds.
    15 = 5 groups with 3 players each.
    16 = 4 groups with 4 players each.
    17 = swiss system with 5 rounds. Some players play only 4 matchs.
    18 = 6 groups with 3 players each.
    19 = swiss system with 5 rounds. Some players play only 4 matchs.
    20 = 4 groups with 5 players each.
    21 = 7 groups with 3 players each.
    22 = swiss system with 5 rounds.
    23 = swiss system with 5 rounds. Some players play only 4 matchs.
    24 = 6 groups with 4 players each.
    25 = swiss system with 5 rounds. Some players play only 4 matchs.
    26 = swiss system with 5 rounds.
    27 = 9 groups with 3 players each.
    28 = swiss system with 5 rounds.
    29 = swiss system with 5 rounds. Some players play only 4 matchs.
    30 = 6 groups with 5 players each.

  2. #2
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mai 2002
    Messages
    2 911
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : mai 2002
    Messages : 2 911
    Points : 4 782
    Points
    4 782
    Par défaut
    salut


    25 = swiss system with 5 rounds. Some players play only 4 matchs.
    cela ne devrais pas être 5*5 ? ou tu préfère des poule paire
    5*4+5

    autre petit truc le libelle de tes fonction
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function four_groups ($players_count)
      {
      echo "4 groups with ".$players_count." players each.";
      }
     
    function groups_with_N_players ($n, $players_count)
      {
      echo $players_count." "."groups with ".$n." players each.";
      }
    j'aurais plutôt écrit

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function four_groups ($nb_players_grp)
      {
      echo "4 groups with ".$nb_players_grp." players each.";
      }
     
    function groups_with_N_players ($nb_players_grp, $nb_group)
      {
      echo $nb_group." "."groups with ".$nb_players_grp." players each.";
      }

    ton code
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if ($players_count == 8) 
    	return groups_with_N_players (4, (int)($players_count/4));
    est inutile il est inclus dans

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
          if ($players_count % 4 == 0 && $players_count/4<=5) 
             return four_groups ((int)($players_count/4));
    8 % 4 == 0 ok
    8/4 <= 5 ok

    je pense qu'il y a un moyen plus simple de faire des groupe
    tu aurais fait plutôt
    Nb_Group = QUOTIENT(Nb_Players_Count-1;Nb_MaxGroup)+1
    Nb_Players_SUP = MODULO(Nb_Players_Count;Nb_Group) ;//nombre d'element suplementaire
    Nb_Players_GRP = QUOTIENT(Nb_Players_Count;Nb_Group) ;//nombre d'element constituant
    ce qui te donne une solution lineaire et evolutive
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  3. #3
    Membre à l'essai
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    juin 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : juin 2019
    Messages : 8
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par anapurna Voir le message
    salut


    25 = swiss system with 5 rounds. Some players play only 4 matchs.
    cela ne devrais pas être 5*5 ? ou tu préfère des poule paire
    5*4+5
    Effectivement 5*5 c'est mieux.

    Citation Envoyé par anapurna Voir le message
    ton code
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if ($players_count == 8) 
    	return groups_with_N_players (4, (int)($players_count/4));
    est inutile il est inclus dans

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
          if ($players_count % 4 == 0 && $players_count/4<=5) 
             return four_groups ((int)($players_count/4));
    8 % 4 == 0 ok
    8/4 <= 5 ok
    Non, ça fait 4 groupes de 2.

    Citation Envoyé par anapurna Voir le message
    je pense qu'il y a un moyen plus simple de faire des groupe
    tu aurais fait plutôt

    ce qui te donne une solution lineaire et evolutive
    Je vais regarder ça.
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Etirer une formule suivant le nombre de ligne d'une autre feuille
    Par S l i d e dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 11/08/2007, 23h45
  2. Réponses: 5
    Dernier message: 05/06/2007, 16h37
  3. Réponses: 3
    Dernier message: 29/05/2007, 15h55
  4. Réponses: 13
    Dernier message: 16/11/2005, 13h15
  5. Réponses: 4
    Dernier message: 25/05/2005, 14h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo