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

Algorithmes et structures de données Discussion :

un algorithme a résoudre


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 10
    Par défaut un algorithme a résoudre
    salut!
    voici l'éxecution d'un programme:
    entrez la dimension du tableau
    15
    -2 3 3 7 -5 3 9 7 10 3 -2 0 10 -5 1
    l'element qui apparait le plus souvent dans le tableau est 3
    son nombre d'occurences est 4
    aidez moi a trouvez cet algorithme et merci bien d'avance

  2. #2
    Membre émérite
    Avatar de LinkinSelim
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Mars 2006
    Messages
    365
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Mars 2006
    Messages : 365
    Par défaut
    le but du forum n'est pas de resourdre des problemes de ce genre, va falloir que tu essaie de creer un programme et quand tu tombe sur des erreurs, tu nous le dis.

  3. #3
    Membre émérite
    Avatar de LinkinSelim
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Mars 2006
    Messages
    365
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Mars 2006
    Messages : 365
    Par défaut
    je vai etre sympa pourc ette fois je vais te donné une méthode qui n'est pas trés optimale a toi de l'optimisé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    fonction occurence(T:tableau,E:element); //fonction qui calcule le nombre d'occurence de l'element E dans le tableau T c ''est a toi de l'implementé elle est trés facile
     
    fonction max(T:tableau); //la solution a ton probleme
    debur
    max = occurence(T,T[1]);
    pour i allant de 2 a 15 faire
      debut
      o = occurence(T,T[i]);
      si o>max alors max := o;
      fin;
     
    fin;

  4. #4
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 119
    Par défaut
    salut,

    tu devrais avoir 2 fonctions/procédures.
    une qui crée un tableau de la dimension introduite avec des nombres aléatoires.
    Une autre qui analyse ce tableau et renvoie les infos demandées.

    Fais déja celle qui crée le tableau, on verra ensuite.

  5. #5
    Inactif  
    Inscrit en
    Mars 2006
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 352
    Par défaut
    Bonjour,

    Voici une solution qui me semble fonctionner :
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    lire(n);
     
    Pour i = 1 à n faire
      lire(tab[i]);
     
    Trier(tab);
     
    maxOcc = 1;
    eltMaxOcc = tab[1];
    i = 2;
    Tant que (i <= n et tab[i] = eltMaxOcc)
      maxOcc = maxOcc + 1;
      i = i + 1;
    FinTantQue
     
    elt = tab[i];
    occ = 1;
    i = i + 1;
    Pour i = i à n faire
      Si (tab[i] = elt)
        occ = occ + 1;
      Sinon
        Si (occ > maxOcc)
          maxOcc = occ;
          eltMaxOcc = elt;
        FinSi
        elt = tab[i];
        occ = 1;
      FinSi
    FinPour
     
    Si (occ > maxOcc)
      maxOcc = occ;
      eltMaxOcc = elt;
    FinSi
     
    afficher(eltMaxOcc);
    afficher(maxOcc);
    Ou bien celle-ci (presque la même que la première) :
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    lire(n);
     
    Pour i = 1 à n faire
      lire(tab[i]);
     
    Trier(tab);
     
    maxOcc = 1;
    occ = 1;
    elt = tab[1];
    eltMaxOcc = elt;
    maxOcc = 1;
    Pour i = 2 à n faire
      Si (tab[i] = elt)
        occ = occ + 1;
      Sinon
        Si (occ > maxOcc)
          maxOcc = occ;
          eltMaxOcc = elt;
        FinSi
        elt = tab[i];
        occ = 1;
      FinSi
    FinPour
     
    Si (occ > maxOcc)
      maxOcc = occ;
      eltMaxOcc = elt;
    FinSi
     
    afficher(eltMaxOcc);
    afficher(maxOcc);
    Cordialement,
    Sidahmed

  6. #6
    Expert confirmé
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Par défaut
    Avec une structure associative (std::map en c++), en deux passes de tableau, ça peut passer (en une passe aussi d'ailleurs).

    L'idée de base c'est dès que tu arrives sur un élément, tu augmentes son nombre d'occurrence. Ca évite de trier le tableau.

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

Discussions similaires

  1. Réponses: 37
    Dernier message: 28/08/2014, 14h10
  2. Résoudre ces exercices d'algorithme
    Par atii13 dans le forum Mathématiques
    Réponses: 2
    Dernier message: 06/11/2011, 18h49
  3. cherche algorithme pour résoudre une question
    Par bayari dans le forum Ruby
    Réponses: 0
    Dernier message: 05/07/2010, 23h35
  4. résoudre erf(x) via un algorithme ?
    Par nakor dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 23/10/2009, 13h59
  5. algorithme à résoudre
    Par ilya-bhn dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 06/12/2006, 02h41

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