IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

C++ Discussion :

Algorithme vainqueur compétition


Sujet :

C++

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2019
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2019
    Messages : 40
    Points : 17
    Points
    17
    Par défaut Algorithme vainqueur compétition
    Bonsoir , je bloque sur un algorithme je dois calculer le vainqueur de la compétition aux deux épreuves.
    — chaque joueur est numéroté de 1 à n
    — le résultat d’une épreuve est un tableau de taille n, permutation de l’intervalle [1, n]. Il représente
    le classement à l’épreuve : le vainqueur est à l’indice 0, le second à l’indice 1, ...
    — le score obtenu par un joueur à une épreuve est son indice dans le tableau résultat. Le score final
    d’un joueur est la somme de ses scores aux deux épreuves.
    — un joueur j1 est classé avant un joueur j2 si son score final est inférieur à celui de j2, ou bien si
    les deux scores sont égaux et j1 est mieux classé que j2 à l’épreuve 1.
    Par exemple si et sont les résultats aux deux
    épreuves, le score final du joueur 1 est 4+5=9. Le meilleur score est obtenu par les joueurs 4, 5 et 7. Ils ont tous trois le score 4. Le vainqueur est le joueur 5 car il est le mieux classé des trois joueurs à la première épreuve.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    int joueur(int *T1,int n,int *T2){
    int vainqueur=0;
    int vainqueur2=0;
     
        for(int i=0;i<n;i++){
            for(int j=0;j<n;j++){
                if(T1[i]==T2[j]) {
                    vainqueur = vainqueur2;
                    vainqueur2 = (i+j);}
     
            if(vainqueur2 <= vainqueur){
                vainqueur = vainqueur2;}
     
     
     
    }
    }
    return vainqueur;}
    J'ai commencé a faire ça sauf que sa me renvoie 5 au lieu de 4 ( et je ne sais pas comment je pourrais renvoyer le joueur le mieux classé) si quelqu'un pourrait m'aider s'il vous plait merci d'avance

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 634
    Points : 10 567
    Points
    10 567
    Par défaut
    Citation Envoyé par Marwaa45 Voir le message
    permutation de l’intervalle [1, n].
    Lapin compris

    Citation Envoyé par Marwaa45 Voir le message
    Par exemple si et sont les résultats aux deux
    tu as oublié les 2 tableaux

    Citation Envoyé par Marwaa45 Voir le message
    int joueur(int *T1,int n,int *T2)
    Le mieux c'est de mettre la taille en dernier - c'est du détail , int joueur(int* tab_results_01, int* tab_results_02, int nb_players).

    Sinon tu mets la charrue avant le bœuf et tu réfléchis mal : avant de traiter le cas d'égalité, commence par calculer les scores
    Le truc le plus simple c'est de passer par un tableau intermédiaire je pense

    Pseudo-code : (sans les préconditions comme tester si les tableaux de résultats ne sont pas NULL (ou alors passer en paramètre des références du style int* const& tab_results ou utiliser std::vector (<- lien en anglais))
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
        int tab_scores[nb_players] = {0};
        size_t player;
     
        for(player=0; player < nb_players; ++player) { tab_scores[ tab_results_01[player] ]  = player; }
        for(player=0; player < nb_players; ++player) { tab_scores[ tab_results_02[player] ] += player; }
     
    //  Find the high score and the number of winners
        size_t high_score, nb_winners;
     
        for(player=1, high_score=tab_scores[0], nb_winners=1; player < nb_players; ++player) {
            if (tab_scores[player] < high_score) { // XXX Warning : as the score is an index, the high score is the smallest score
                high_score = tab_scores[player];
                nb_winners = 1
            } else if (tab_scores[player] == high_score) {
               ++nb_winners;
            }
        }
     
        if (nb_winners > 1) {
    //      ...
        }

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2019
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2019
    Messages : 40
    Points : 17
    Points
    17
    Par défaut
    super merci beaucoup pour ta réponse

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

Discussions similaires

  1. Formalisation graphique des algorithmes
    Par David R. dans le forum Algorithmes et structures de données
    Réponses: 14
    Dernier message: 08/12/2012, 10h21
  2. Algorithme de randomisation ... ( Hasard ...? )
    Par Anonymous dans le forum Assembleur
    Réponses: 8
    Dernier message: 06/09/2002, 14h25
  3. recherches des cours ou des explications sur les algorithmes
    Par Marcus2211 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 19/05/2002, 22h18
  4. Recherche de documentation complète en algorithmes
    Par Anonymous dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 29/03/2002, 12h09
  5. Algorithme génétique
    Par Stephane.P_(dis Postef) dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 15/03/2002, 17h14

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