Table des matières
Grammaire
Méthode 2
Algorithme
Exemple
Sortie
Explication
Conclusion
Maison développement back-end C++ Vérifier si la somme maximale des faces visibles de N dés est d'au moins X

Vérifier si la somme maximale des faces visibles de N dés est d'au moins X

Sep 16, 2023 pm 02:13 PM
somme maximale dés Peut rencontrer

Vérifier si la somme maximale des faces visibles de N dés est dau moins X

L'efficacité et la précision sont souvent cruciales lors de la résolution de problèmes complexes de programmation. Un défi particulier consiste à déterminer de manière appropriée si la somme maximale des faces visibles de N dés est égale ou supérieure à X. Dans cet article, nous évaluons diverses approches pour résoudre cette difficulté dans le codage C++, notamment des explications syntaxiques et des algorithmes étape par étape. De plus, nous fournirons deux exemples de code exécutable réels et complets basés sur l’approche proposée. À la fin, vous comprendrez clairement comment vérifier en C++ si la somme maximale des faces visibles de N dés est au moins X.

Grammaire

Avant d'aborder ces méthodes, comprenons d'abord la syntaxe des méthodes que nous utiliserons dans le code suivant -

bool checkVisibleSum(int N, int X, vector<int>& dice);
Copier après la connexion

Méthode 1

Algorithme

  • Tout d’abord, initialisez une variable visibleSum à 0. Cette variable stockera la somme des faces visibles.

  • Parcourez chaque élément du vecteur de dés.

  • Pour chaque dé, disposez les faces par ordre décroissant.

  • Ajoutez la plus grande face (le premier élément après le tri) à visibleSum.

  • Si à tout moment, visibleSum devient supérieur ou égal à X, renvoie true.

  • Si aucune somme visible supérieure ou égale à X n'est trouvée une fois l'itération terminée, renvoyez false.

Exemple

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

bool checkVisibleSum(int N, int X, vector<vector<int>>& dice) {
   int visibleSum = 0;

   for (int i = 0; i < dice.size(); i++) {
      sort(dice[i].rbegin(), dice[i].rend());
      visibleSum += dice[i][0];

      if (visibleSum >= X)
         return true;
   }

   return false;
}

int main() {
   int N = 2; // Number of dice

   vector<vector<int>> dice(N);
   dice[0] = {6, 5, 4}; // Faces of dice 1
   dice[1] = {3, 2, 1}; // Faces of dice 2

   int X = 15; // Minimum sum (X)

   if (checkVisibleSum(N, X, dice))
      cout << "The maximum sum of visible faces of the dice is at least " << X << ".\n";
   else
      cout << "The maximum sum of visible faces of the dice is not at least " << X << ".\n";

   return 0;
}
Copier après la connexion

Sortie

The maximum sum of visible faces of the dice is not at least 15.
Copier après la connexion
La traduction chinoise de

Explication

est :

Explication

Dans ce code, nous définissons d'abord la fonction checkVisibleSum, qui accepte trois paramètres : N (le nombre de dés), X (la somme minimale) et dice (un vecteur représentant le vecteur des faces des dés).

La fonction

checkVisibleSum implémente la méthode 1. Il initialise une variable visibleSum à 0, qui sert à stocker la somme des faces visibles. Ensuite, il parcourt chaque dé du vecteur de dés. Pour chaque dé, il trie les faces par ordre décroissant en utilisant sort(dice[i].rbegin(), dice[i].rend()). Cela garantit que la plus grande face se trouve au début du vecteur trié.

Le code ajoute ensuite le plus grand côté du dé actuel à visibleSum en utilisant visibleSum += dice[i][0]. En utilisant cette fonction, on peut mieux comprendre certains événements qui peuvent survenir dans une situation donnée.

Cela peut être vu en analysant si une somme visible donnée dépasse ou est égale à X à différents moments de son analyse. Si cette possibilité est découverte au cours de l'étude - généralement indiquée par un résultat réel - alors ils peuvent conclure avec un certain degré de certitude que le nombre maximum de caractéristiques observables est égal ou supérieur à leur intention initiale de dépasser X.

À l’inverse, s’ils ne parviennent toujours pas à trouver lesdites statistiques après quelques explorations avec des itérations et des calculs pertinents, alors il y a évidemment davantage de questions sans réponse.

Dans la fonction principale, nous invitons l'utilisateur à saisir le nombre de dés (N). Nous créons un vecteur de vecteurs appelés dés pour stocker les faces de chaque dé. Nous itérons ensuite N fois et, pour chaque dé, demandons à l'utilisateur le nombre de faces et les faces elles-mêmes. Nous stockons ces valeurs dans le vecteur de dés.

Ensuite, nous demandons à l'utilisateur de saisir la somme minimale (X). Nous passons N, X et dés à la fonction checkVisibleSum. Nous transmettrons donc un message selon lequel la somme maximale possible des faces de matrice visibles est égale ou supérieure à X. Cependant, contrairement aux perspectives positives de cette situation, nous sommes susceptibles de divulguer des connaissances après avoir appris que la fonction produit en réalité des résultats indésirables liés à X.

Méthode 2

Algorithme

  • Tout d’abord, initialisez une variable visibleSum à 0. Cette variable stockera la somme des faces visibles.

  • Parcourez chaque élément du vecteur de dés.

  • Pour chaque dé, disposez les faces par ordre décroissant.

  • Calculez la somme des N-1 premières faces (à l'exclusion de la plus grande face) et ajoutez-la à visibleSum.

  • Renvoie vrai si visibleSum devient supérieur ou égal à X.

  • Si aucune somme visible supérieure ou égale à X n'est trouvée une fois l'itération terminée, renvoyez false.

Exemple

#include <iostream>
#include <vector>
#include <algorithm>
#include <numeric>

using namespace std;

bool checkVisibleSum(int N, int X, vector<vector<int>>& dice) {
   int visibleSum = 0;

   for (int i = 0; i < dice.size(); i++) {
      sort(dice[i].rbegin(), dice[i].rend());
      int sum = accumulate(dice[i].begin(), dice[i].end() - 1, 0);
      visibleSum += sum;

      if (visibleSum >= X)
         return true;
   }

   return false;
}

int main() {
   int N = 2; // Number of dice

   vector<vector<int>> dice(N);
   dice[0] = {6, 5, 4}; // Faces of dice 1
   dice[1] = {3, 2, 1}; // Faces of dice 2

   int X = 15; // Minimum sum (X)

   if (checkVisibleSum(N, X, dice))
      cout << "The maximum sum of visible faces of the dice is at least " << X << ".\n";
   else
      cout << "The maximum sum of visible faces of the dice is not at least " << X << ".\n";

   return 0;
}
Copier après la connexion

Sortie

The maximum sum of visible faces of the dice is at least 15.
Copier après la connexion
La traduction chinoise de

Explication

est :

Explication

Dans ce code, nous avons la même fonction checkVisibleSum que dans la première méthode. Toutefois, la principale différence réside dans le calcul de la somme visible.

La méthode 2 additionne les N-1 premières faces de chaque dé, en excluant la plus grande face. Pour y parvenir, nous utilisons la fonction accumulate de la bibliothèque Nous passons dice[i].begin() et dice[i].begin() + N - 1 comme plage à accumuler, en additionnant efficacement les faces requises.

Le reste du code de la fonction principale est le même que l'exemple précédent.

Conclusion

À travers cet article, notre sujet s'articule autour de la résolution d'une question importante sur le codage C++. Comment savoir exactement si la somme des plus grandes faces visibles d’un jeu de dés donné (N) est au moins X ? Pour répondre au mieux à cette question, nous avons trouvé deux solutions pratiques : premièrement, s'assurer que la somme des résultats de chaque lancer de dé est égale ou supérieure à X, deuxièmement, évaluer uniquement la somme des N-1 premiers lancers de dé et déterminer s'ils correspondent ; ou dépasse X. De plus, nous fournissons la configuration du code pour chaque méthode et des conseils détaillés pour exécuter ces procédures. De plus, nous fournissons deux exemples de code réels et entièrement exécutables basés sur ces méthodes. En tirant parti des connaissances et du code fournis dans cet article, vous pouvez désormais résoudre en toute confiance le problème de déterminer si la somme des plus grandes faces visibles de N dés est au moins X en programmation 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!

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)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

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)

Gulc: Cibliothèque C construite à partir de zéro Gulc: Cibliothèque C construite à partir de zéro Mar 03, 2025 pm 05:46 PM

Gulc est une bibliothèque C haute performance priorisant les frais généraux minimaux, l'inclinaison agressive et l'optimisation du compilateur. Idéal pour les applications critiques de performance comme le trading à haute fréquence et les systèmes intégrés, sa conception met l'accent sur la simplicité, le module

Quels sont les types de valeurs renvoyées par les fonctions du langage C? Qu'est-ce qui détermine la valeur de retour? Quels sont les types de valeurs renvoyées par les fonctions du langage C? Qu'est-ce qui détermine la valeur de retour? Mar 03, 2025 pm 05:52 PM

Cet article détaille les types de retour de la fonction C, englobant de base (int, float, char, etc.), dérivé (tableaux, pointeurs, structures) et types de vide. Le compilateur détermine le type de retour via la déclaration de fonction et l'instruction de retour, appliquant

Quelles sont les définitions et les règles d'appel des fonctions du langage C et quelles sont les Quelles sont les définitions et les règles d'appel des fonctions du langage C et quelles sont les Mar 03, 2025 pm 05:53 PM

Cet article explique la déclaration de la fonction C par rapport à la définition, l'argument passant (par valeur et par pointeur), les valeurs de retour et les pièges communs comme les fuites de mémoire et les décalages de type. Il souligne l'importance des déclarations de modularité et de provi

C Fonction Langue Format de lettre ÉTAPES DE CONVERSION DE CAS C Fonction Langue Format de lettre ÉTAPES DE CONVERSION DE CAS Mar 03, 2025 pm 05:53 PM

Cet article détaille les fonctions C pour la conversion de cas de chaîne. Il explique l'utilisation de Toupper () et Tolower () de Ctype.h, itérant à travers les cordes et manipulant des terminateurs nuls. Les pièges communs comme oublier Ctype.h et modifier les littéraux de chaîne sont

Où est la valeur de retour de la fonction de langue C stockée en mémoire? Où est la valeur de retour de la fonction de langue C stockée en mémoire? Mar 03, 2025 pm 05:51 PM

Cet article examine le stockage de valeur de retour de la fonction C. De petites valeurs de retour sont généralement stockées dans les registres pour la vitesse; Des valeurs plus importantes peuvent utiliser des pointeurs vers la mémoire (pile ou tas), impactant la durée de vie et nécessitant une gestion manuelle de la mémoire. ACC directement

Utilisation distincte et partage de phrases Utilisation distincte et partage de phrases Mar 03, 2025 pm 05:51 PM

Cet article analyse les utilisations à multiples facettes de l'adjectif "distinct" "explorant ses fonctions grammaticales, des phrases communes (par exemple," distinctes de "" "distinctement différentes") et une application nuancée en formelle vs informelle informelle

Comment fonctionne la bibliothèque de modèle standard C (STL)? Comment fonctionne la bibliothèque de modèle standard C (STL)? Mar 12, 2025 pm 04:50 PM

Cet article explique la bibliothèque de modèles standard C (STL), en se concentrant sur ses composants principaux: conteneurs, itérateurs, algorithmes et fonctors. Il détaille comment ces interagissent pour permettre la programmation générique, l'amélioration de l'efficacité du code et de la lisibilité

Comment utiliser efficacement les algorithmes du STL (trier, trouver, transformer, etc.)? Comment utiliser efficacement les algorithmes du STL (trier, trouver, transformer, etc.)? Mar 12, 2025 pm 04:52 PM

Cet article détaille l'utilisation efficace de l'algorithme STL en c. Il met l'accent sur le choix de la structure des données (vecteurs vs listes), l'analyse de la complexité des algorithmes (par exemple, STD :: Srieur vs std :: partial_sort), l'utilisation des itérateurs et l'exécution parallèle. Pièges communs comme

See all articles