Dado un conjunto, encuentre el XOR de los XOR de todos los subconjuntos.

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *