Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでビット単位のANDですべてのペアのXOR合計を見つけるプログラム


2つの配列arr1とarr2があるとします。リストのXOR合計は、そのすべての要素のビット単位のXORです。リストに要素が1つしかない場合、そのXOR合計は要素自体になります。ここで、リストがすべてのインデックスペア(i、j)に対してarr1 [i] AND arr2 [j](ビット単位のAND)の結果を持っていると考えます。ここで、0 <=i

したがって、入力がarr1 =[5,3,4] arr2 =[2,6]の場合、リストは[5 AND 2、5 AND 6、3 AND 2、3 AND 6であるため、出力は0になります。 、4 AND 2、4 AND 6] =[0、4、2、2、0、4]、XORの合計は[0 XOR 4 XOR 2 XOR 2 XOR 0 XOR 4] =0

これを解決するには、次の手順に従います-

  • xor1:=0

  • xor2:=0

  • arr1の各aについて、実行します

    • xor1:=xor1 XOR a

  • arr2の各aについて、実行します

    • xor2:=xor2 XOR a

  • xor1ANDxor2を返す

理解を深めるために、次の実装を見てみましょう

def solve(arr1, arr2):
   xor1 = 0
   xor2 = 0
   for a in arr1:
      xor1 ^= a
   for a in arr2:
      xor2 ^= a
   return xor1 & xor2

arr1 = [5,3,4]
arr2 = [2,6]
print(solve(arr1, arr2))

入力

[5,3,4], [2,6]

出力

0

  1. 配列の合計を見つけるPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 入力として配列が与えられた場合、与えられた配列の合計を計算する必要があります。 ここでは、ブルートフォースアプローチに従うことができます。つまり、リストをトラバースし、各要素を空の合計変数に追加します。最後に、合計の値を表示します。 以下で説明するように、組み込みの合計関数を使用して別のアプローチを実行することもできます。 例 # main arr = [1,2,3,4,5] ans = sum(arr,n) print ('Sum of the array is '

  2. リスト内のすべてのペア間の絶対差の合計を見つけるPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 リスト入力が与えられた場合、リスト内のすべてのペア間の絶対差の合計を見つける必要があります。 列挙() メソッドは、反復可能オブジェクトにカウンターを追加し、それを列挙オブジェクトタイプの形式で返します。 この方法では、絶対差を含むリスト「diffs」があります。 2つの変数が初期化された2つのループを使用します。 1つはカウンターを反復処理し、もう1つはリスト要素を反復処理します。すべての反復で、要素が類似しているかどうかを確認します。 そうでない場合は、絶対差を見つけて、それ