Table des matières
Grammaire
Algorithme du code source
Méthode 1 : Fissuration par force brute
Algorithme
Exemple 2
Sortie
Méthode 2 : Méthode d'optimisation
Conclusion
Maison développement back-end C++ Calculer le sous-tableau de longueur K dont la moyenne dépasse la médiane du tableau donné

Calculer le sous-tableau de longueur K dont la moyenne dépasse la médiane du tableau donné

Sep 02, 2023 am 08:09 AM
平均值 nombre médian longueur du sous-réseau

Calculer le sous-tableau de longueur K dont la moyenne dépasse la médiane du tableau donné

L'expression "sous-tableau de longueur K" s'applique aux sous-tableaux contigus avec exactement K éléments. La maîtrise et l'utilisation des sous-réseaux sont essentielles pour résoudre une variété de problèmes dans des domaines tels que la programmation dynamique, la géométrie computationnelle et l'analyse des données.

Un autre concept important dans les opérations et les statistiques sur les tableaux est la médiane. La médiane d'un tableau représente la valeur au milieu lorsque les éléments sont triés par ordre croissant. Lorsqu’il y a un nombre pair d’éléments, la médiane est la moyenne des deux valeurs centrales. La médiane constitue une mesure durable de tendance centrale car elle est moins sensible aux valeurs extrêmes ou aberrantes que la moyenne.

Cet article tente d'étudier le défi de déterminer le nombre de sous-tableaux de longueur K dans un tableau donné dont la moyenne dépasse la médiane. En comprenant la relation entre la moyenne et la médiane d’un ensemble de données, nous pouvons approfondir ce défi et développer des techniques efficaces pour le résoudre. Rejoignez-nous pour disséquer l'énoncé du problème, examiner les concepts clés et calculer efficacement de manière algorithmique le nombre de sous-tableaux de longueur K requis dans un tableau.

Grammaire

Triez les éléments d'un tableau par ordre croissant.

sort(begin(array), end(array))
Copier après la connexion

Déclarez un vecteur d'entiers.

vector<int> vec
</int>
Copier après la connexion

Déclarer un tableau d'entiers

int arr[]
Copier après la connexion

Syntaxe de base de la boucle for en C++.

for(int i=0; i<size; ++i)
Copier après la connexion

Algorithme du code source

  • Lisez le tableau d'entrée et sa taille.

  • Calculez la médiane du tableau donné.

  • Pour chaque sous-tableau de longueur K, calculez la moyenne.

  • Comparez la moyenne avec la médiane.

  • Sous-tableaux de statistiques dont la moyenne dépasse la médiane.

Méthode 1 : Fissuration par force brute

La méthode 1 constitue une solution simple au défi de déterminer le nombre de sous-tableaux de longueur K dont la moyenne dépasse la médiane d'un tableau spécifié. Initialement, le tableau d'entrée est trié et la médiane est calculée. Par la suite, le programme parcourt tous les sous-réseaux réalisables de longueur K et calcule leur moyenne en agrégeant leurs composants. Si la moyenne du sous-tableau dépasse la médiane, le décompte est incrémenté. Enfin, le code renvoie le nombre de ces sous-tableaux.

Algorithme

  • Calculez la médiane du tableau donné.

  • Parcourez tous les sous-tableaux possibles de longueur K.

  • Calculez la moyenne de chaque sous-tableau.

  • Si la moyenne du sous-tableau est supérieure à la médiane, incrémentez le décompte.

Exemple 1

Le code ci-dessous suit l'approche par force brute mentionnée plus haut dans cet article. Il trie d'abord le tableau d'entrée et calcule la médiane. Il parcourt ensuite tous les sous-tableaux possibles de longueur K et calcule leur moyenne en additionnant leurs éléments. Si la moyenne du sous-tableau est supérieure à la médiane, le décompte est incrémenté. Enfin, le code renvoie le nombre de ces sous-tableaux.

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

int countSubarrays(vector<int> &arr, int n, int k) {
   int count = 0;
   double median;
   sort(arr.begin(), arr.end());
   median = (n % 2 == 0) ? (arr[n/2 - 1] + arr[n/2]) / 2.0 : arr[n/2];

   for (int i = 0; i <= n - k; i++) {
      double sum = 0;
      for (int j = i; j < i + k; j++) {
         sum += arr[j];
      }
      if (sum / k > median) {
         count++;
      }
   }
   return count;
}

int main() {
   vector<int> arr = {1, 5, 6, 7, 9};
   int n = arr.size();
   int k = 3;
   int result = countSubarrays(arr, n, k);
   cout << "Number of K-length subarrays with average exceeding median: " << result << endl;
   return 0;
}
Copier après la connexion

Sortie

Number of K-length subarrays with average exceeding median: 1
Copier après la connexion
Copier après la connexion

Méthode 2 : Méthode d'optimisation

La méthode 2 est une solution élégante au problème de la détermination du nombre de sous-tableaux de longueur K avec une moyenne dépassant la médiane d'un tableau spécifié. Il trie d'abord le tableau d'entrée et calcule la médiane. Il calcule ensuite le tableau de somme de préfixes, qui est utilisé pour déterminer la somme de chaque sous-tableau de longueur K. L'algorithme parcourt tous les sous-tableaux possibles de longueur K, calcule leur moyenne à l'aide du tableau de somme de préfixes et compare avec la médiane.

Si la moyenne du sous-tableau dépasse la médiane, le décompte est incrémenté. Enfin, le programme renvoie le nombre de ces sous-tableaux. Cette approche est plus efficace que la première approche car elle utilise un tableau de somme de préfixes pour calculer la somme de chaque sous-tableau de longueur K, réduisant ainsi la complexité d'exécution.

Algorithme

  • Calculez la médiane du tableau donné.

  • Calculez le préfixe et le tableau.

  • Parcourez tous les sous-tableaux possibles de longueur K.

  • Calculez la moyenne en utilisant le préfixe et le tableau.

  • Si la moyenne du sous-tableau est supérieure à la médiane, incrémentez le décompte.

Exemple 2

Cet algorithme suit la meilleure approche décrite précédemment. Il exploite des tableaux de sommes de préfixes pour calculer rapidement des agrégats pour chaque sous-ensemble de longueur K. Une fois la séquence d'entrée triée et la valeur médiane déterminée, la somme des préfixes est calculée. Le programme parcourt ensuite tous les sous-ensembles de longueur K, calcule leur moyenne à l'aide du tableau de somme de préfixes et la compare à la médiane. Si la moyenne dépasse la médiane, le décompte est incrémenté. En résumé, le code renvoie le nombre de ces sous-ensembles.

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

int countSubarrays(vector<int> &arr, int n, int k) {
   int count = 0;
   double median;
   sort(arr.begin(), arr.end());
   median = (n % 2 == 0) ? (arr[n/2 - 1] + arr[n/2]) / 2.0 : arr[n/2];

   vector<int> prefix_sum(n);
   prefix_sum[0] = arr[0];
   for (int i = 1; i < n; i++) {
      prefix_sum[i] = prefix_sum[i - 1] + arr[i];
   }

   for (int i = 0; i <= n - k; i++) {
      double sum = (i == 0) ? prefix_sum[i + k - 1] : prefix_sum[i + k - 1] - prefix_sum[i - 1];
      if (sum / k > median) {
         count++;
      }
   }
   return count;
}

int main() {
   vector<int> arr = {1, 5, 6, 7, 9};
   int n = arr.size();
   int k = 3;
   int result = countSubarrays(arr, n, k);
   cout << "Number of K-length subarrays with average exceeding median: " << result << endl;
   return 0;
}
Copier après la connexion

Sortie

Number of K-length subarrays with average exceeding median: 1
Copier après la connexion
Copier après la connexion

Conclusion

Dans cet article, nous avons discuté de deux façons de calculer des sous-tableaux de longueur K dont la moyenne dépasse la médiane d'un tableau donné en utilisant C++. La première méthode est la méthode par force brute, qui parcourt tous les sous-tableaux possibles de longueur K et calcule leur moyenne. La deuxième méthode est une méthode d'optimisation qui utilise des préfixes et des tableaux pour calculer la moyenne plus efficacement. Les deux codes sont fournis et peuvent être exécutés pour trouver le nombre requis de sous-tableaux.

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!

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quelle est la formule du mot moyenne ? Quelle est la formule du mot moyenne ? Sep 19, 2023 pm 01:48 PM

La formule de mot moyenne est "= MOYENNE (CI-DESSUS)". Étapes spécifiques pour calculer la moyenne : 1. Ouvrez Word et créez un nouveau document ; 2. Dans le document, saisissez les données pour lesquelles vous souhaitez calculer la moyenne, chaque donnée occupant une ligne ou une colonne. Par exemple, vous pouvez saisir des données dans la première colonne ; 3. Dans une cellule vide en dessous ou à droite des données, ouvrez la barre de formule et saisissez la formule « = MOYENNE (CI-DESSUS) » ; Word calculera et affichera la valeur moyenne.

Carré moyen des nombres naturels ? Carré moyen des nombres naturels ? Sep 20, 2023 pm 10:29 PM

La moyenne des carrés des nombres naturels est calculée en additionnant tous les carrés de n nombres naturels puis en divisant par ce nombre. Les deux premiers nombres naturels de l'exemple sont 2,5, 12+22=5=>5/2=2,5. Il existe deux méthodes de calcul en programmation : Utiliser des boucles Utiliser des formules Calculer la moyenne des carrés de nombres naturels à l'aide de boucles Cette logique fonctionne en trouvant les carrés de tous les nombres naturels. Trouvez le carré de chacun en bouclant de 1 à n et ajoutez à la variable somme. Divisez ensuite cette somme par n. Programme pour calculer la somme des carrés de nombres naturels - exemple de code de démonstration en temps réel #include<stdio.h>intmain(){ intn=2;

Quelles sont les fonctions de moyenne des tableaux en php ? Quelles sont les fonctions de moyenne des tableaux en php ? Jul 17, 2023 pm 04:03 PM

Les fonctions de moyenne de tableau PHP incluent : 1. array_sum(), qui est utilisé pour calculer la somme de toutes les valeurs du tableau. Afin de calculer la moyenne, vous pouvez additionner toutes les valeurs du tableau, puis diviser par. le nombre d'éléments du tableau ; 2 , array_reduce(), utilisé pour parcourir le tableau et calculer chaque valeur avec une valeur initiale ; 3. array_mean(), utilisé pour renvoyer la moyenne du tableau, calculer d'abord la somme du tableau, et calculez le nombre d'éléments du tableau, puis divisez la somme par le nombre d'éléments du tableau pour obtenir la moyenne.

Étant donné un nombre impair, trouvez la moyenne de tous les nombres impairs Étant donné un nombre impair, trouvez la moyenne de tous les nombres impairs Sep 03, 2023 pm 03:49 PM

La moyenne des nombres impairs jusqu’à un nombre impair donné est un concept simple. Il vous suffit de trouver les nombres impairs jusqu'à ce nombre, puis de les additionner et de diviser par ce nombre. Si vous voulez trouver la moyenne des nombres impairs jusqu’à n. Ensuite, nous trouverons les nombres impairs de 1 à n, les additionnerons et les diviserons par le nombre de nombres impairs. Exemple La moyenne des nombres impairs jusqu'à 9 est 5, soit 1+3+5+7+9=25=>25/5=5 Il existe deux manières de calculer la moyenne des nombres impairs jusqu'à n, où n est un nombre impair en utilisant une boucle en utilisant la formule Programme pour trouver la moyenne des nombres impairs jusqu'à n, en utilisant une boucle Pour calculer la moyenne des nombres impairs jusqu'à n, nous allons additionner tous les nombres jusqu'à n et diviser par le nombre de. nombres impairs jusqu'à n. Programme pour calculer la moyenne des nombres naturels impairs jusqu'à n - exemple de code

Comment trouver la moyenne d'un tableau unidimensionnel en php Comment trouver la moyenne d'un tableau unidimensionnel en php Dec 26, 2022 am 10:20 AM

Comment trouver la moyenne d'un tableau unidimensionnel en PHP : 1. Créez un nouveau fichier PHP ; 2. Créez un tableau 3. Utilisez la fonction array_sum pour additionner les éléments du tableau ; le nombre d’éléments du tableau. Divisez ensuite les deux nombres pour trouver la moyenne.

Quelle est la moyenne de tous les nombres pairs précédant un nombre pair donné ? Quelle est la moyenne de tous les nombres pairs précédant un nombre pair donné ? Aug 25, 2023 pm 11:53 PM

Pour trouver la moyenne des nombres pairs avant un nombre pair donné, nous allons additionner tous les nombres pairs avant un nombre donné, puis compter le nombre de nombres pairs. Divisez ensuite la somme par le nombre de nombres pairs. Exemple La moyenne des nombres pairs jusqu'à 10 est 6, c'est-à-dire 2+4+6+8+10=30=>30/5=6. Il existe deux façons de calculer la moyenne des nombres pairs jusqu'à n, c'est-à-dire les nombres pairs. Programme pour calculer la moyenne des nombres pairs jusqu'à n en utilisant une formule en utilisant une boucle Utilisation d'une boucle Pour calculer la moyenne des nombres pairs jusqu'à n, nous allons additionner tous les nombres pairs jusqu'à n puis diviser par le nombre de nombres pairs jusqu'à n . Calculer la moyenne des nombres naturels pairs jusqu'à n - Exemple de code Démonstration en direct #include<stdio.h>intm

Comment calculer la moyenne d'un certain champ à l'aide de la fonction AVG dans MySQL Comment calculer la moyenne d'un certain champ à l'aide de la fonction AVG dans MySQL Jul 12, 2023 pm 03:28 PM

Comment calculer la moyenne d'un certain champ à l'aide de la fonction AVG dans MySQL Dans les systèmes de gestion de bases de données, le traitement des données est une tâche très courante. Le calcul de la moyenne d'un champ est l'une des exigences courantes. MySQL fournit la fonction AVG, qui peut nous aider à calculer facilement la moyenne. Cet article explique comment utiliser la fonction AVG dans MySQL, ainsi que des exemples de code associés. Tout d’abord, nous devons nous assurer que la base de données MySQL est installée et configurée. S'il n'est pas encore installé, vous pouvez le télécharger depuis le site officiel de MySQL et

Calculer le sous-tableau de longueur K dont la moyenne dépasse la médiane du tableau donné Calculer le sous-tableau de longueur K dont la moyenne dépasse la médiane du tableau donné Sep 02, 2023 am 08:09 AM

L'expression « sous-tableau de longueur K » s'applique à un sous-tableau contigu avec exactement K éléments. La maîtrise et l'utilisation des sous-réseaux sont essentielles pour résoudre une variété de problèmes dans des domaines tels que la programmation dynamique, la géométrie computationnelle et l'analyse des données. Un autre concept important dans les opérations sur les tableaux et les statistiques est la médiane. La médiane d'un tableau représente la valeur au milieu lorsque les éléments sont triés par ordre croissant. Lorsqu’il y a un nombre pair d’éléments, la médiane est la moyenne des deux valeurs centrales. La médiane constitue une mesure durable de tendance centrale car elle est moins sensible aux valeurs extrêmes ou aberrantes que la moyenne. Cet article tente d'étudier le défi de déterminer le nombre de sous-réseaux de longueur K dans un tableau donné dont la moyenne dépasse la médiane. Nous pouvons approfondir cela en comprenant la relation entre la moyenne et la médiane d'un ensemble de données.

See all articles