>  기사  >  백엔드 개발  >  C++에서는 다음을 중국어로 번역합니다. A와 B의 XOR 결과가 C와 같도록 비트 플립의 최소 수를 계산합니다.

C++에서는 다음을 중국어로 번역합니다. A와 B의 XOR 결과가 C와 같도록 비트 플립의 최소 수를 계산합니다.

王林
王林앞으로
2023-08-27 11:57:08645검색

C++에서는 다음을 중국어로 번역합니다. A와 B의 XOR 결과가 C와 같도록 비트 플립의 최소 수를 계산합니다.

길이가 N인 세 개의 이진 시퀀스 A, B, C가 주어졌습니다. 각 시퀀스는 이진수. 우리는 아니오를 알아내야 합니다. A와 B의 XOR이 C를 제공하도록 A와 B의 비트에 필요한 플립 수입니다. A XOR B는 C가 됩니다.

먼저 XOR 연산의 진리표를 이해해 봅시다 -

01 1101 110A[i]==B[i] 및 C[i]==0인 경우 뒤집기가 필요하지 않습니다. A[i]==B[i] 및 C[i]인 경우 = =1이면 A[i] 또는 B[i]를 뒤집고 뒤집기 횟수를 1씩 늘립니다.A[i]!=B[i]이고 C[i]==0인 경우 A[i]를 뒤집거나 B [i]이고 뒤집기 횟수를 1씩 늘립니다.A[i]!=B[i] 및 C[i]==1이면 뒤집기가 필요하지 않습니다.
X Y X
위 표에서 X와 Y의 동일한 값에 대해 X 결과는 0이고, 그렇지 않은 경우 결과 1. 따라서 이는 A와 B를 뒤집어 C에 도달하는 비트를 찾는 데 도움이 됩니다. 상황은
Input

A[]= { 0,0,0,0 } B[]= { 1,0,1,0 } C= {1,1,1,1}

Output
    Required flips : 2
  • Explanation
  • 의 중국어 번역은
  • Explanation
  • 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
  • Input
  • A[]= { 0,0,1,1 } B[]= { 0,0,1,1 } C= {0,0,1,1}
  • Output
  • Required flips : 2
Explanation

중국어 번역은

Explanation

rrre입니다. ee

다음 프로그램에서 방법은

배열 a[], b[] 및 c[]는 이진수를 저장하는 데 사용됩니다.

Function FlipCount(int A[], int B[], int C[], int n)은 배열 a, b, c와 해당 길이 n을 다음과 같이 사용합니다. C[]가 A XOR B와 같도록 A[] 또는 B[]의 비트에 필요한 뒤집기 횟수를 입력하고 반환합니다. B

변수 count는 뒤집기 횟수를 나타내며 0으로 초기화됩니다.

  • for 루프를 사용하여 각 비트 A[i] 및 B[i]에 대해 i = 0부터 i

  • 까지 셀의 모든 비트를 반복합니다. 동일하고 C[i]가 1이면 카운트를 증가시킵니다.

  • 각 비트 A[i] 및 B[i]에 대해. 동일하지 않고 C[i]가 0이면 카운트를 증가시킵니다.

  • 원하는 결과의 개수를 반환합니다.

  • 라이브 시연
  • 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
  • Output

    #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;
    }

위 내용은 C++에서는 다음을 중국어로 번역합니다. A와 B의 XOR 결과가 C와 같도록 비트 플립의 최소 수를 계산합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제