Gegeben seien drei binäre Folgen A, B und C der Länge N. Jede Sequenz repräsentiert a
Binärzahl. Wir müssen nein herausfinden. Die Anzahl der erforderlichen Flips der Bits in A und B, sodass das XOR von A und B C ergibt. Ein XOR B wird zu C.
Lassen Sie uns zunächst die Wahrheitstabelle der XOR-Operation verstehen –
X |
Y |
1 |
1 1 |
0 |
|
Aus der obigen Tabelle sehen wir, dass für die gleichen Werte in X und Y das Ergebnis von X 0 ist, andernfalls
Ergebnis 1. Dies wird also helfen, die Bits zu finden, die in A und B umdrehen, um C zu erreichen. Die Situation wird sein: |
wenn A[i]==B[i] und C[i]==0, ist kein Umdrehen erforderlich, |
wenn A[i]==B[i] und C[i] = =1, dann drehe A[i] oder B[i] um und erhöhe die Anzahl der Drehungen um 1 |
Wenn A[i]!=B[i] und C[i]==0, drehe A[i] oder um B [i] und erhöhen Sie die Anzahl der Umdrehungen um 1
Wenn A[i]!=B[i] und C[i]==1, ist keine Umdrehung erforderlich. Die chinesische Übersetzung von „Input | A[]= { 0,0,0,0 } B[]= { 1,0,1,0 } C= {1,1,1,1}
Nach dem Login kopieren
Output | Required flips : 2
Nach dem Login kopieren
Nach dem Login kopieren
Explanation“ lautet: „Explanation“ | Erklärung
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
Nach dem Login kopieren
Im folgenden Programm Die Methode verwendet wird wie folgt | | Arrays a[], b[] und c[] werden zum Speichern von Binärzahlen verwendet. |
Funktion FlipCount(int A[], int B[], int C[], int n) übernimmt die Arrays a, b, c und ihre Länge n als
Geben Sie die Anzahl der erforderlichen Flips für die Bits von A[] oder B[] ein und geben Sie sie zurück, sodass C[] gleich A XOR B ist
B
Die Variable count stellt die Flip-Zählung dar und wird auf 0 initialisiert. Verwenden Sie eine for-Schleife, um jedes Bit in der Zelle von i = 0 bis i für jedes Bit A[i] und B[i] zu durchlaufen. Wenn sie gleich sind und C[i] 1 ist, erhöhen Sie die Anzahl.
Für jedes Bit A[i] und B[i]. Wenn sie nicht gleich sind und C[i] 0 ist, erhöhen Sie den Zähler.
Gibt die Anzahl der gewünschten Ergebnisse zurück.
Beispiel
Live-Demonstration
A[]= { 0,0,1,1 } B[]= { 0,0,1,1 } C= {0,0,1,1}
Nach dem Login kopieren
Ausgabe
Required flips : 2
Nach dem Login kopieren
Nach dem Login kopieren
Das obige ist der detaillierte Inhalt vonÜbersetzen Sie in C++ Folgendes ins Chinesische: Berechnen Sie die minimale Anzahl von Bitwechseln, sodass das XOR-Ergebnis von A und B gleich C ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!