In diesem Artikel werden wir über das Zählen der Anzahl eindeutiger Tripel (x,y,z) in einem bestimmten Array eindeutiger Zahlen sprechen, deren XOR 0 ist. Ein Tripel sollte also eindeutig sein, wenn alle drei Elemente eindeutig sind und die Kombination aller Tripel wie folgt berechnet wird: −
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.
Wir kennen die XOR-Operation für dieselben Werte. Das Ergebnis ist immer Null. Ein optimistischer Ansatz zum Auffinden eindeutiger Tripel besteht also darin, das XOR-Ergebnis zweier Werte in einem Array zu finden, das Ergebnis zu speichern und dann das Array nach einem Wert zu durchsuchen, der diesem Ergebnis entspricht. Darüber hinaus sollte der Wert des Ergebnisses keinem Wertepaar entsprechen. Bitte beachten Sie
#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; }
Number of unique triplets : 3
In diesem Artikel wurde erläutert, wie man die Anzahl der Tripel mit dem XOR-Wert 0 ermittelt. Wir haben einen optimistischen Ansatz zur Ermittlung eindeutiger Tripel besprochen. Wir haben auch ein Programm zur Lösung dieses Problems in C++ besprochen. Wir können dieses Programm jedoch auch in anderen Programmiersprachen wie Java, C, Python usw. schreiben. Ich hoffe, dieser Artikel ist hilfreich für Sie.
Das obige ist der detaillierte Inhalt vonErmitteln Sie mithilfe von C++ die Anzahl eindeutiger Tripel mit XOR von Null. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!