首頁  >  文章  >  Java  >  在Java中,使用大小為4的群組對元素進行不同的XOR操作來尋找陣列

在Java中,使用大小為4的群組對元素進行不同的XOR操作來尋找陣列

WBOY
WBOY轉載
2023-08-26 10:45:071238瀏覽

在Java中,使用大小為4的群組對元素進行不同的XOR操作來尋找陣列

把下面這句話翻譯成中文,保留html程式碼,不用再增加新內容:

我們被給予一個大小為N(4的倍數的大小)的整數數組,我們必須 對數組執行異或運算,使得 input[1- 4] 類似於 utility_arr[1- 4]和計算條件是如果arr[1 – 4] = {a1, a2, a3, a4} 那麼q[1 – 4] = {a1 ⊕ a2 ⊕ a3, a1 ⊕ a2 ⊕ a4, a1 ⊕ a3 ⊕ a4, a2 ⊕ a3 ⊕ a4}

#讓我們看看這種情況的各種輸入輸出場景-

In − int[] input = { 5, 2, 3, 4 };

Out − 異或後來的結果運算4 3 2 5

解釋−異或閘的輸出僅在其兩個輸入端子處於「不同」邏輯電平時才變為「高」。如果這兩個輸入 A 和 B 都處於邏輯電平“1”或“0”,則輸出為“0”,從而使閘成為“奇數閘但不是偶數閘”。換句話說,當輸入有奇數個 1 時,輸出為「1」。

a1 ⊕ a2 ⊕ a3 = 5 ⊕ 2 ⊕ 3 = 4

a1 ⊕ a2 ⊕ a4 = 5 ⊕ 2 ⊕ 4 = 3

##a1 ⊕# 5⊕ 3 ⊕ 4 = 2

a2 ⊕ a3 ⊕ a4 = 2 ⊕ 3 ⊕ 4 = 5

In − int[] input = { 7, 6,

##In

− int[] input = { 7、6, 4, 4, 3, 8, 9, 5 };

Out

− XOR 運算後的結果5 5 7 6 2 14 15 4

說明

− 異或閘的輸出僅在其兩個輸入時變為「高」終端處於彼此「不同」的邏輯電平。如果這兩個輸入 A 和 B 都處於邏輯電平“1”或“0”,則輸出為“0”,從而使閘成為“奇數閘但不是偶數閘”。換句話說,當輸入有奇數個 1 時,輸出為「1」。僅適用於大小為 4 倍數的 input[],其他大小的輸入陣列將顯示 0 代替奇數位置的數字。

異或運算後的結果5 5 7 6 2 14 15 4

    下面程式中使用的方法如下-
  • 根據XOR a ⊕ a = 0 和a ⊕ 0 = a 的性質。 (a ⊕ b ⊕ c) ⊕ (b ⊕ c ⊕ d) = a ⊕ d (As (b ⊕ c) ⊕ (b ⊕ c) = 0)

##########。將數組分為4 組,我們將依照XOR 的性質來計算每組的結果。 ############參考上述性質,使用 (a ⊕ d )我們可以計算b和c (a ⊕ b ⊕ d) ⊕ (a ⊕ d) = b (a ⊕ c ⊕ d) ⊕ (a ⊕ d) = c#############透過使用 b 和 c,我們可以使用下列方法得到 a 和 d (a ⊕ b ⊕ c) ⊕ (b) ⊕ (c) = a (b ⊕ c ⊕ d) ⊕ (b) ⊕ (c) = d#############對所有四組重複此過程############使用2 個指標i 和j 迭代循環,直到數組的長度除以四,並引入臨時值(ans)和實用程式數組(儲存答案)。 ############在for 迴圈內實作以下異或運算######ans= 輸入陣列[i] ⊕ 輸入陣列[i 3]#######實用程式陣列[i 1](計算b)= 輸入數組[i 1] ⊕ ans######實用數組[i 2](計算c)= 輸入數組[i 2] ⊕ ans######實用數組[i](計算a)=輸入數組[i]⊕((效用數組[i 1])^(效用數組[i 2]))######效用數組[i](計算d) )= input array[i 3] ⊕ ((Utility array[i 1]) ^ (Utility array[i 2]))###########並且指標被更新為下一組四個字元# ###########最後,列印陣列並將結果傳回給使用者。 ############範例###
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]);
      }
   }
}
###輸出######如果我們執行上面的程式碼,將會產生以下輸出###
Different XORs of elements in groups of size 4 is :
4
5
6
0
####

以上是在Java中,使用大小為4的群組對元素進行不同的XOR操作來尋找陣列的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除