Maison > développement back-end > C++ > le corps du texte

Explication détaillée de la fonction mode en C++

WBOY
Libérer: 2023-11-18 15:08:23
original
1655 Les gens l'ont consulté

Explication détaillée de la fonction mode en C++

Explication détaillée de la fonction mode en C++

En statistiques, le mode fait référence à la valeur qui apparaît le plus fréquemment dans un ensemble de données. En langage C++, nous pouvons trouver le mode dans n’importe quel ensemble de données en écrivant une fonction de mode.

La fonction mode peut être implémentée de différentes manières. Deux des méthodes couramment utilisées seront présentées en détail ci-dessous.

La première méthode consiste à utiliser une table de hachage pour compter le nombre de fois où chaque numéro apparaît. Tout d’abord, nous devons définir une table de hachage avec chaque nombre comme clé et le nombre d’occurrences comme valeur. Ensuite, pour l'ensemble de données donné, nous parcourons chaque nombre, en le comparant à la clé de la table de hachage. Si le numéro existe déjà dans la table de hachage, on ajoute 1 à la valeur correspondante ; si le numéro n'existe pas dans la table de hachage, on l'ajoute à la table de hachage et on fixe sa valeur à 1. Enfin, on parcourt la table de hachage et on trouve le numéro qui apparaît le plus souvent, qui est le mode.

Ce qui suit est un exemple de code qui utilise une table de hachage pour implémenter la fonction majoritaire :

#include <iostream>
#include <unordered_map>
#include <vector>
using namespace std;

int majorityElement(vector<int>& nums) {
    unordered_map<int, int> count;
    for (int num : nums) {
        count[num]++;
    }
    int majority = nums[0];
    int maxCount = count[nums[0]];
    for (auto& pair : count) {
        if (pair.second > maxCount) {
            majority = pair.first;
            maxCount = pair.second;
        }
    }
    return majority;
}

int main() {
    vector<int> nums = {1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4};
    int result = majorityElement(nums);
    cout << "The majority element is: " << result << endl;
    return 0;
}
Copier après la connexion

Exécutez le code ci-dessus et le résultat de sortie est :
L'élément majoritaire est : 4

Une autre méthode consiste à utiliser les propriétés de le tableau pour l'optimisation. Tout d’abord, nous trions l’ensemble de données. Ensuite, nous parcourons le tableau trié et comptons le nombre de fois où chaque nombre apparaît. Étant donné que le même numéro apparaîtra en continu, vous pouvez déterminer s'il apparaît en continu en comparant si le numéro actuel et le numéro précédent sont égaux. Si le nombre actuel est égal au nombre précédent, le décompte est incrémenté de 1 sinon, on recommence à compter ; Enfin, on trouve le nombre avec le plus grand nombre, qui est le mode.

Ce qui suit est un exemple de code de la fonction majoritaire optimisée à l'aide du tri par tableau :

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int majorityElement(vector<int>& nums) {
    sort(nums.begin(), nums.end());
    int majority = nums[0];
    int count = 1;
    int maxCount = 1;
    for (int i = 1; i < nums.size(); i++) {
        if (nums[i] == nums[i - 1]) {
            count++;
        } else {
            count = 1;
        }
        if (count > maxCount) {
            majority = nums[i];
            maxCount = count;
        }
    }
    return majority;
}

int main() {
    vector<int> nums = {1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4};
    int result = majorityElement(nums);
    cout << "The majority element is: " << result << endl;
    return 0;
}
Copier après la connexion

Exécutez le code ci-dessus, le résultat de sortie est :
L'élément majoritaire est : 4

Les deux méthodes ci-dessus sont couramment utilisées pour implémenter la majorité dans la fonction numérique C++. Ces méthodes sont très efficaces et peuvent trouver correctement le mode sur différents ensembles de données. En fonction des besoins réels et des caractéristiques des données, nous pouvons choisir d’utiliser l’une de ces méthodes pour résoudre des problèmes spécifiques. J'espère que cet article vous aidera à comprendre la fonction mode en C++.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!