Heim > Java > javaLernprogramm > Suchen Sie in Java ein Array mithilfe verschiedener XOR-Operationen für Elemente, die Gruppen der Größe 4 verwenden

Suchen Sie in Java ein Array mithilfe verschiedener XOR-Operationen für Elemente, die Gruppen der Größe 4 verwenden

WBOY
Freigeben: 2023-08-26 10:45:07
nach vorne
1275 Leute haben es durchsucht

Suchen Sie in Java ein Array mithilfe verschiedener XOR-Operationen für Elemente, die Gruppen der Größe 4 verwenden

Übersetzen Sie den folgenden Satz ins Chinesische und behalten Sie den HTML-Code bei, ohne neuen Inhalt hinzuzufügen:

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.

Das Ergebnis nach der XOR-Operation 5 5 7 6 2 14 15 4

Die im folgenden Programm verwendete Methode ist wie folgt -

  • 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.

Beispiel

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]);
      }
   }
}
Nach dem Login kopieren

Ausgabe

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
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage