


Trouver le nombre de triples uniques avec XOR de zéro en utilisant C++
Dans cet article, nous parlerons du comptage du nombre de triples uniques (x,y,z) dans un tableau donné de nombres uniques où leur XOR est 0. Ainsi, un triplet doit être unique où les trois éléments sont uniques et la combinaison de tous les triples sera calculée comme −
Input : arr[ ] = { 5, 6, 7, 1, 3 } Output : 2 Explanation : triplets are { 5, 6, 3 } and { 6, 7, 1 } whose XOR is zero. Input : arr[ ] = { 3, 6, 8, 1, 5, 4 , 12} Output : 3 Explanation : Triplets are { 3, 6, 5 }, { 1, 5, 4 } and { 4, 8, 12 } whose XOR is zero.
Façons de trouver la solution
Nous connaissons l'opération XOR pour les mêmes valeurs Le résultat est toujours nul. Ainsi, une approche optimiste pour trouver des triplets uniques consiste à trouver le résultat XOR de deux valeurs dans un tableau, à stocker le résultat, puis à rechercher dans le tableau une valeur égale à ce résultat. De plus, la valeur du résultat ne doit être égale à aucune paire de valeurs. Veuillez consulter
Exemple
#include <bits/stdc++.h> using namespace std; int main () { int arr[] = { 3, 6, 8, 1, 5, 4, 12 }; int n = sizeof (arr) / sizeof (arr[0]); int result; // count variable to keep count of pairs. int count = 0; // creating a set to store unique numbers . unordered_set < int >values; // inserting values in set. for (int i = 0; i < n; i++) values.insert (arr[i]); // traverse for all pairs to calculate XOR. for (int i = 0; i < n - 1; i++) { for (int j = i + 1; j < n; j++) { // finding xor of i, j pair. int XR = arr[i] ^ arr[j]; // checking if XOR value of pair present in array // and value should not be in pairs. if (values.find (XR) != values.end () && XR != arr[i] && XR != arr[j]) count++; } } // storing result result = count / 3; cout << "Number of unique triplets : " << result; return 0; }
Output
Number of unique triplets : 3
Explication du code ci-dessus
- Créez un unordered_set
valeurs pour stocker les nombres uniques dans le tableau donné. - Utilisez une boucle for() pour insérer des valeurs dans la collection via values.insert(arr[i]).
- Utilisez deux boucles imbriquées pour parcourir toutes les paires de nombres et calculer leurs valeurs XOR.
- Ensuite, recherchez dans le tableau la valeur XOR et incrémentez le nombre lorsque la valeur est dans le tableau mais pas dans la paire.
- Stockez le résultat sous forme de compte / 3, afin que le nombre de triplets de trois combinaisons puisse être calculé, et ce dont nous avons besoin est le seul triple.
Conclusion
Cet article explique comment trouver le nombre de triplets avec une valeur XOR 0 ; nous avons discuté d'une approche optimiste pour trouver des triplets uniques. Nous avons également discuté d'un programme pour résoudre ce problème en C++. Cependant, nous pouvons écrire ce programme dans d'autres langages de programmation tels que Java, C, Python, etc. J'espère que cet article vous sera utile.
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

Undress AI Tool
Images de déshabillage gratuites

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.

Stock Market GPT
Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes

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)

C Structure des données du langage: La représentation des données de l'arborescence et du graphique est une structure de données hiérarchique composée de nœuds. Chaque nœud contient un élément de données et un pointeur vers ses nœuds enfants. L'arbre binaire est un type spécial d'arbre. Chaque nœud a au plus deux nœuds enfants. Les données représentent StrustReenode {intdata; structTreenode * gauche; structureReode * droite;}; L'opération crée une arborescence d'arborescence arborescence (prédécision, ordre dans l'ordre et ordre ultérieur) Le nœud d'insertion de l'arborescence des arbres de recherche de nœud Graph est une collection de structures de données, où les éléments sont des sommets, et ils peuvent être connectés ensemble via des bords avec des données droites ou peu nombreuses représentant des voisins.

La fonction ReadDir dans le système Debian est un appel système utilisé pour lire le contenu des répertoires et est souvent utilisé dans la programmation C. Cet article expliquera comment intégrer ReadDir avec d'autres outils pour améliorer sa fonctionnalité. Méthode 1: combinant d'abord le programme de langue C et le pipeline, écrivez un programme C pour appeler la fonction readdir et sortir le résultat: # include # include # include # includeIntmain (intargc, char * argv []) {dir * dir; structDirent * entrée; if (argc! = 2) {

La vérité sur les problèmes de fonctionnement des fichiers: l'ouverture des fichiers a échoué: les autorisations insuffisantes, les mauvais chemins de mauvais et les fichiers occupés. L'écriture de données a échoué: le tampon est plein, le fichier n'est pas écrivatif et l'espace disque est insuffisant. Autres FAQ: traversée de fichiers lents, encodage de fichiers texte incorrect et erreurs de lecture de fichiers binaires.

La compatibilité ABI en C se réfère si le code binaire généré par différents compilateurs ou versions peut être compatible sans recompilation. 1. Fonction Calling Conventions, 2. Modification du nom, 3. Disposition de la table de fonction virtuelle, 4. Structure et mise en page de classe sont les principaux aspects impliqués.

C Guide de programmation multithreading Language: Création de threads: Utilisez la fonction PTHREAD_CREATE () pour spécifier l'ID de thread, les propriétés et les fonctions de thread. Synchronisation des threads: empêchez la concurrence des données via des mutex, des sémaphores et des variables conditionnelles. Cas pratique: utilisez le multi-lancement pour calculer le numéro Fibonacci, attribuer des tâches à plusieurs threads et synchroniser les résultats. Dépannage: résoudre des problèmes tels que les accidents de programme, les réponses d'arrêt de fil et les goulots d'étranglement des performances.

Comment produire un compte à rebours en C? Réponse: Utilisez des instructions de boucle. Étapes: 1. Définissez la variable N et stockez le numéro de compte à rebours à la sortie; 2. Utilisez la boucle while pour imprimer en continu n jusqu'à ce que n soit inférieur à 1; 3. Dans le corps de la boucle, imprimez la valeur de n; 4. À la fin de la boucle, soustrayez N par 1 pour sortir le prochain plus petit réciproque.

Les algorithmes sont l'ensemble des instructions pour résoudre les problèmes, et leur vitesse d'exécution et leur utilisation de la mémoire varient. En programmation, de nombreux algorithmes sont basés sur la recherche et le tri de données. Cet article présentera plusieurs algorithmes de récupération et de tri de données. La recherche linéaire suppose qu'il existe un tableau [20,500,10,5,100,1,50] et doit trouver le numéro 50. L'algorithme de recherche linéaire vérifie chaque élément du tableau un par un jusqu'à ce que la valeur cible soit trouvée ou que le tableau complet soit traversé. L'organigramme de l'algorithme est le suivant: Le pseudo-code pour la recherche linéaire est le suivant: Vérifiez chaque élément: Si la valeur cible est trouvée: return True return false C Implementation: # include # includeIntMain (void) {i

CLORATION DE FICHIER DE LANGUE C: LIRE Le traitement des fichiers de fichiers est une partie cruciale de la programmation de langage C, qui permet aux programmes d'interagir avec des périphériques de stockage externes tels que les disques et les lecteurs flash. Cet article explorera comment lire des fichiers dans le langage C. Étapes pour lire un fichier pour ouvrir le fichier: utilisez la fonction fopen pour ouvrir le fichier. Cette fonction nécessite deux paramètres: nom de fichier et mode ouvert. Vérifiez si le fichier est ouvert: vérifiez si le pointeur renvoyé par la fonction FOPEN est nul. Si NULL, le fichier ne peut pas être ouvert. Lire Fichier: Utilisez la fonction Fread pour lire les données du fichier vers le tampon. Cette fonction nécessite quatre paramètres: adresse de tampon, taille de l'élément tampon, nombre d'éléments à lire et pointeur de fichier. Fermez le fichier: utilisez f
