


Vérifier si la somme maximale des faces visibles de N dés est d'au 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);
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; }
Sortie
The maximum sum of visible faces of the dice is not at least 15.
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 fonctioncheckVisibleSum 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; }
Sortie
The maximum sum of visible faces of the dice is at least 15.
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
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Sujets chauds

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

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

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

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

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

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

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é

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
