Wir erhalten ein Array von ganzen Zahlen der Größe N (Größe, die ein Vielfaches von 4 ist) und wir müssen Führt eine XOR-Operation für das Array aus, sodass Eingabe[1–4] wie folgt aussieht Utility_arr[1-4] und die Berechnungsbedingung sind if arr[1 – 4] = {a1, a2, a3, a4} Dann q[1 – 4] = {a1 ⊕ a2 ⊕ a3, a1 ⊕ a2 ⊕ a4, a1 ⊕ a3 ⊕ a4, a2 ⊕ a3 ⊕ a4}
Sehen wir uns die verschiedenen Eingabe- und Ausgabeszenarien dieser Situation an -
In − int[] input = { 5, 2, 3, 4 };
Out − Das Ergebnis nach der XOR-Operation 4 3 2 5
Erklärung−Der Ausgang des XOR-Gatters liegt nur in seinem The Zwei Eingangsanschlüsse gehen nur dann auf „High“, wenn sie sich auf „unterschiedlichen“ Logikpegeln befinden. Wenn beide Eingänge A und B auf dem Logikpegel „1“ oder „0“ liegen, ist der Ausgang „0“, wodurch das Gatter ein „ungerades Gatter, aber kein gerades Gatter“ ist. Mit anderen Worten: Wenn die Eingabe eine ungerade Anzahl von Einsen hat, ist die Ausgabe „1“.
a1 ⊕ a2 ⊕ a3 = 5 ⊕ 2 ⊕ 3 = 4
a1 ⊕ a2 ⊕ a4 = 5 ⊕ 2 ⊕ 4 = 3
a1 ⊕ a3 ⊕ a4 = 5⊕ 3 ⊕ 4 = 2
a2 ⊕ a3 ⊕ a4 = 2 ⊕ 3 ⊕ 4 = 5
In − int[] input = { 7, 6, 4, 4, 3, 8, 9, 5 };
Out − Das Ergebnis der XOR-Operation 5 5 7 6 2 14 15 4
Erklärung− Der Ausgang eines XOR-Gatters geht nur dann auf „High“, wenn seine beiden Eingangsanschlüsse auf „unterschiedlichen“ Logikpegeln voneinander liegen. Wenn beide Eingänge A und B auf dem Logikpegel „1“ oder „0“ liegen, ist der Ausgang „0“, wodurch das Gatter ein „ungerades Gatter, aber kein gerades Gatter“ ist. Mit anderen Worten: Wenn die Eingabe eine ungerade Anzahl von Einsen hat, ist die Ausgabe „1“. Funktioniert nur für Eingabegrößen[], die ein Vielfaches von 4 sind. Eingabearrays anderer Größen zeigen Nullen anstelle von Zahlen an ungeraden Positionen an.
Gemäß den Eigenschaften von XOR a ⊕ a = 0 und a ⊕ 0 = a. (a ⊕ b ⊕ c) ⊕ (b ⊕ c ⊕ d) = a ⊕ d (As (b ⊕ c) ⊕ (b ⊕ c) = 0)
Für die Berechnung wird das Array unterteilt in 4 Gruppen, wir Die Ergebnisse für jede Gruppe werden gemäß den XOR-Eigenschaften berechnet.
Unter Bezugnahme auf die oben genannten Eigenschaften können wir mit (a ⊕ d) b und c berechnen (a ⊕ b ⊕ d) ⊕ (a ⊕ d) = b (a ⊕ c ⊕ d) ⊕ (a ⊕ d) = c
Durch die Verwendung von b und c können wir a und d mithilfe von erhalten (a ⊕ b ⊕ c) ⊕ (b) ⊕ (c) = a (b ⊕ c ⊕ d) ⊕ (b) ⊕ (c) = d
Wiederholen Sie den Vorgang für alle vier Gruppen
Iterieren Sie die Schleife mit zwei Zeigern i und j, bis die Länge des Arrays durch geteilt ist Viertens und führen Sie temporäre Werte (ans) und Utility-Arrays (zum Speichern von Antworten) ein.
Implementieren Sie die folgende XOR-Operation innerhalb der for-Schleife
ans= Eingabearray[i] ⊕ Eingabearray[i+3]
Utility-Array[i+1](berechne b)= Eingabearray[i+ 1] ⊕ ans
utility array[i+2](calculate c)=input array[i+2] ⊕ ans
utility array[i](calculate a)=input array[i]⊕((utility array[ i + 1]) ^ (Utility-Array [i + 2]))
Utility-Array [i] (berechne d) ) = Eingabe-Array [i + 3] ⊕ ((Utility-Array [i + 1]) ^ (Utility-Array[ i + 2]))
und der Zeiger wird für den nächsten Satz von vier Zeichen aktualisiert
Schließlich wird das Array gedruckt und das Ergebnis an den Benutzer zurückgegeben.
import java.util.Arrays; import java.util.List; public class Tutorials{ static int ans = 0; public static void main(String args[]){ int[] input = {7, 1, 2, 3}; int[] arr = new int[input.length]; for (int i = 0, j = 0; j < input.length / 4; j++){ ans = input[i] ^ input[i + 3]; arr[i + 1] = input[i + 1] ^ ans; arr[i + 2] = input[i + 2] ^ ans; arr[i] = input[i] ^ ((arr[i + 1]) ^ (arr[i + 2])); arr[i + 3] = input[i + 3] ^ (arr[i + 1] ^ arr[i + 2]); i += 4; } System.out.println("Different XORs of elements in groups of size 4 is: "); for (int i = 0; i < arr.length; i++){ System.out.println(arr[i]); } } }
Wenn wir den obigen Code ausführen, wird die folgende Ausgabe generiert
Different XORs of elements in groups of size 4 is : 4 5 6 0
Das obige ist der detaillierte Inhalt vonSuchen Sie in Java ein Array mithilfe verschiedener XOR-Operationen für Elemente, die Gruppen der Größe 4 verwenden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!