Python程式查詢陣列中可被給定數字整除的元素的異或值


在本文中,我們將討論如何計算可被給定數字整除的陣列元素的異或值。異或 (XOR) 是一種二元運算,它比較兩個運算元的位。如果位不同,則返回 1,如果位相同,則返回 0。在這種方法中,我們將使用異或的特性並將其應用於此問題。該問題的解決方案將透過相關示例進行展示。讓我們舉一個例子來演示計算過程。為了便於理解,考慮一個簡單的示例,陣列 'arr' = [1,2,3,4,5]。我們將計算其元素的異或值,並逐步進行。

  • 將 xor_value 初始化為 0。

  • 開始遍歷每個元素

    • 第一個元素 num = 1,執行 xor_value^num。由於 xor_value = 0,結果為 1。更新 xor_value = 1

    • 第 2 個元素 num = 2,執行 xor_value^num。當前 xor_value = 1,結果為 3。更新 xor_value = 3

    • 第 3 個元素 num = 3,執行 xor_value^num。當前 xor_value = 3,結果為 0。更新 xor_value = 0

    • 第 4 個元素 num = 4,執行 xor_value^num。當前 xor_value = 0,結果為 4。更新 xor_value = 4

    • 第 5 個元素 num = 5,執行 xor_value^num。當前 xor_value = 4,結果為 1。更新 xor_value = 1

  • 迭代完成,最終的 xor_value 為 1。

  • 返回 xor_value 作為結果。

在給定的示例中,陣列 [1,2,3,4,5] 的異或值為 1。

我們可以將此計算應用於任何陣列以獲得其元素的異或運算。

示例 1:Python 程式查詢可被給定數字整除的陣列元素的異或值

程式碼解釋和設計步驟

步驟 1:在 Anaconda 提示符中開啟 Jupyter Notebook 並開始在其單元格中編寫程式碼。

步驟 2:使用此函式 ‘xor_divisible_elements’,它接受兩個引數 ‘arr’ 作為輸入陣列,‘divisor’ 是一個數字,元素必須可被其整除。

步驟 3:‘xor_value’ 初始化為 0。

步驟 4:對於所有元素,可被整除數字的異或值將儲存在 ‘xor_value’ 中。

步驟 5:使用 ‘for’ 迴圈迭代 ‘arr’ 中的每個元素 ‘num’

步驟 6:‘for’ 迴圈中,使用模運算子 (%) 檢查 ‘num’ 是否可被 ‘divisor’ 整除。如果餘數為 0,則 ‘num’ 絕對可被 ‘divisor’ 整除。檢查結果。

步驟 7:更新 ‘xor_value’,使用異或賦值運算子 ‘^=’ 對 ‘num’ 執行異或運算。

步驟 8:對 ‘xor_value’ 和 ‘num’ 執行按位異或運算以計算新的異或值。

步驟 9:建立一個輸入陣列並將除數設定為 10,使用輸入陣列呼叫函式 ‘xor_divisible_elements’ 並將計算出的值儲存在 ‘result’ 變數中。檢查結果。

可被給定數字整除的陣列元素的異或值程式碼

示例

def xor_divisible_elements(arr, divisor):
    xor_value = 0

    for num in arr: # use for Loop 
        if num % divisor == 0: # Check remainder is zero
            xor_value ^= num  # XORing with num to get our result

    return xor_value

# Example 
array = [20,25,30,35,40,50] # input array
divisor = 10     # set divisor value

result = xor_divisible_elements(array, divisor) # Store final value in the result variable
print("XOR of divisible elements:", result) # Printing our result

輸出

XOR of divisible elements: 16

示例 2:Python 程式查詢可被給定數字整除的陣列元素的異或值

程式碼解釋和設計步驟

步驟 1:在 Anaconda 提示符中開啟 Jupyter Notebook 並開始在其單元格中編寫程式碼。

步驟 2:使用此函式 ‘xor_divisible_elements’,它接受兩個引數 ‘arr’ 作為輸入陣列,‘divisor’ 是一個數字,元素必須可被其整除。

步驟 3:‘xor_value’ 初始化為 0。

步驟 4:對於所有元素,可被整除數字的異或值將儲存在 ‘xor_value’ 中。

步驟 5:使用 ‘for’ 迴圈迭代 ‘arr’ 中的每個元素 ‘num’

步驟 6:‘for’ 迴圈中,使用地板除運算子 (//) 計算單個元素將 num 除以 divisor 得到的商。透過檢查商 % 2 == 1 來檢查商是否為奇數。

步驟 7:更新 ‘xor_value’,使用異或賦值運算子 ‘^=’‘num’ 執行異或運算。

步驟 8:‘xor_value’‘num’ 執行按位異或運算以計算新的異或值。

步驟 9:建立一個輸入陣列並將除數設定為 10,使用輸入陣列呼叫函式 ‘xor_divisible_elements’ 並將計算出的值儲存在 ‘result’ 變數中。檢查結果。

可被給定數字整除的陣列元素的異或值程式碼:(替代方法)

示例

def xor_divisible_elements(arr, divisor):
    xor_value = 0

    for num in arr: # use for Loop 
        quotient = num // divisor  # Calculate quotient by dividing num by  
                                     # divisor using ‘//’ operator

        if quotient % 2 == 1:  # Check for quotient odd
            xor_value ^= num  # XORing with num to get our result

    return xor_value

# Example 
array = [20,25,30,35,40,50] # input array
divisor = 10     # set divisor value

result = xor_divisible_elements(array, divisor) # Store final value in the 
                                                 # result variable
print("XOR of divisible elements:", result) # Print our result

輸出

XOR of divisible elements: 15

此程式碼遵循方法 2 來查詢可被給定數字整除的陣列元素的異或值。

結論

本文介紹了兩種計算可被給定數字整除的陣列元素的異或值的方法。為了便於理解,兩種方法都進行了清晰的解釋。比較兩個運算元的二進位制值以進行異或運算,相同的位值將返回零作為結果,否則對於不同的位值,結果將為 1。我們還可以根據需要修改或更改陣列和除數的值。

更新於: 2023年8月28日

189 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告