La cuestión es encontrar el XOR de los XOR de todos los subconjuntos. es decir, si el conjunto es {1,2,3}. Todos los subconjuntos son: [{1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3}]. Encuentre el XOR de cada uno de los subconjuntos y luego encuentre el XOR de cada resultado del subconjunto.
Le recomendamos encarecidamente que minimice su navegador y que pruebe esto usted mismo primero.
Esta es una pregunta muy sencilla de resolver si acertamos en el primer paso (y único paso). La solución es XOR siempre es 0 cuando n > 1 y Set[0] cuando n es 1.
C++
// C++ program to find XOR of XOR's of all subsets #include <bits/stdc++.h> using namespace std; // Returns XOR of all XOR's of given subset int findXOR(int Set[], int n) { // XOR is 1 only when n is 1, else 0 if (n == 1) return Set[0]; else return 0; } // Driver program int main() { int Set[] = { 1, 2, 3 }; int n = sizeof(Set) / sizeof(Set[0]); cout << "XOR of XOR's of all subsets is " << findXOR(Set, n); return 0; }
C
// C program to find the XOR of XORs of all subsets #include <stdio.h> // Returns XOR of all XORs of given subset int findXOR(int Set[], int n) { // XOR is 1 only when n is 1, else 0 if (n == 1) return Set[0]; else return 0; } // Driver program int main() { int Set[] = { 1, 2, 3 }; int n = sizeof(Set) / sizeof(Set[0]); printf("XOR of XORs of all subsets is %d\n", findXOR(Set, n)); return 0; } // This code is contributed by phalashi.
Java
// Java program to find XOR of // XOR's of all subsets import java.util.*; class GFG { // Returns XOR of all XOR's of given subset static int findXOR(int Set[], int n) { // XOR is 1 only when n is 1, else 0 if (n == 1) return Set[0]; else return 0; } // Driver code public static void main(String arg[]) { int Set[] = { 1, 2, 3 }; int n = Set.length; System.out.print("XOR of XOR's of all subsets is " + findXOR(Set, n)); } } // This code is contributed by Anant Agarwal.
Python3
# Python program to find # XOR of XOR's of all subsets # Returns XOR of all # XOR's of given subset def findXOR(Set, n): # XOR is 1 only when # n is 1, else 0 if (n == 1): return Set[0] else: return 0 # Driver code Set = [1, 2, 3] n = len(Set) print("XOR of XOR's of all subsets is ", findXOR(Set, n)) # This code is contributed # by Anant Agarwal.
C#
// C# program to find XOR of // XOR's of all subsets using System; class GFG { // Returns XOR of all // XOR's of given subset static int findXOR(int[] Set, int n) { // XOR is 1 only when n // is 1, else 0 if (n == 1) return Set[0]; else return 0; } // Driver code public static void Main() { int[] Set = { 1, 2, 3 }; int n = Set.Length; Console.Write("XOR of XOR's of all subsets is " + findXOR(Set, n)); } } // This code is contributed by nitin mittal
PHP
<?php // PHP program to find XOR // of XOR's of all subsets // Returns XOR of all // XOR's of given subset function findXOR($Set, $n) { // XOR is 1 only when // n is 1, else 0 if ($n == 1) return $Set[0]; else return 0; } // Driver Code $Set = array(1, 2, 3); $n = count($Set); echo "XOR of XOR's of all subsets is " , findXOR($Set, $n); // This code is contributed by anuj_67. ?>
Javascript
<script> // JavaScript program to find XOR of XOR's of all subsets // Returns XOR of all XOR's of given subset function findXOR(Set, n) { // XOR is 1 only when n is 1, else 0 if (n == 1) return Set[0]; else return 0; } // Driver program let Set = [1, 2, 3]; let n = Set.length; document.write("XOR of XOR's of all subsets is " + findXOR(Set, n)); // This code is contributed by Surbhi Tyagi </script>
Producción:
XOR of XOR's of all subsets is 0
Complejidad de tiempo: O(1)
Espacio Auxiliar: O(1)
Problema relacionado:
Suma de XOR de todos los subconjuntos posibles
¿Cómo funciona esto?
La lógica es simple. Consideremos el n’ésimo elemento, se puede incluir en todos los subconjuntos de elementos restantes (n-1). El número de subconjuntos para (n-1) elementos es igual a 2 (n-1) que siempre es par cuando n>1. Por lo tanto, en el resultado XOR, cada elemento se incluye un número par de veces y el XOR de ocurrencias pares de cualquier número es 0.
Este artículo es una contribución de Ekta Goel . Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA