Étant donné trois séquences binaires A, B et C de longueur N. Chaque séquence représente un Nombre binaire. Nous devons découvrir non. Le nombre de retournements requis pour les bits de A et B tels que le XOR de A et B donne C. A XOR B devient C.
Commençons par comprendre la table de vérité de l'opération XOR -
X | Y | X | 0
---|---|---|
1 | 0 | |
1 | 1 | |
D'après le tableau ci-dessus on observe que pour les mêmes valeurs en X et Y, X Le résultat est 0, sinon Résultat 1. Cela aidera donc à trouver les bits qui inversent A et B pour atteindre C. La situation sera | ||
si A[i]==B[i] et C[i] = =1, puis retournez A[i] ou B[i] et augmentez le nombre de retournements de 1 | Si A[i]!=B[i] et C[i]==0, retournez A[i] ou B [i] et incrémentez le nombre de retournements de 1 | Si A[i]!=B[i] et C[i]==1, aucun retournement n'est requis. La traduction chinoise de |
A[]= { 0,0,0,0 } B[]= { 1,0,1,0 } C= {1,1,1,1}
Required flips : 2
A[0] xor B[0] 0 xor 1 = 1 C[0]=1 no flip A[1] xor B[1] 0 xor 0 = 0 C[0]=1 flip count=1 A[2] xor B[2] 0 xor 1 = 1 C[0]=1 no flip A[3] xor B[3] 0 xor 0 = 0 C[0]=1flip count=2
A[]= { 0,0,1,1 } B[]= { 0,0,1,1 } C= {0,0,1,1}
Required flips : 2
A[0] xor B[0] 0 xor 0 = 0 C[0]=0 no flip A[1] xor B[1] 0 xor 0 = 0 C[0]=0 no flip A[2] xor B[2] 1 xor 1 = 0 C[0]=1 flip count=1 A[3] xor B[3] 1 xor 1 = 0 C[0]=1 flip count=2
< /p>
#include<bits/stdc++.h> using namespace std; int flipCount(int A[], int B[], int C[], int N){ int count = 0; for (int i=0; i < N; ++i){ // If both A[i] and B[i] are equal then XOR results 0, if C[i] is 1 flip if (A[i] == B[i] && C[i] == 1) ++count; // If Both A and B are unequal then XOR results 1 , if C[i] is 0 flip else if (A[i] != B[i] && C[i] == 0) ++count; } return count; } int main(){ //N represent total count of Bits int N = 5; int a[] ={1,0,0,0,0}; int b[] ={0,0,0,1,0}; int c[] ={1,0,1,1,1}; cout <<"Minimum bits to flip such that XOR of A and B equal to C :"<<flipCount(a, b, c,N); return 0; }
Minimum bits to flip such that XOR of A and B equal to C :2
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!