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

Pythonを使用して配列でXOR演算を実行するプログラム


整数nと別の整数の開始があるとします。 numsという配列を作成する必要があります。ここで、nums [i] =start + 2 * i(iは0から開始)で、nはnumsのサイズです。次に、numsのすべての要素のビット単位のXORを見つけます。

したがって、入力がn =6、start =2の場合、配列は[2 + 2 * 0、2 + 2 * 1、... 2 + 2 * 5] =のようになるため、出力は14になります。 [2,4,6,8,10,12]の場合、配列に存在する各要素のXORは14です。

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

  • count:=start

  • n-1> 0の場合、実行

    • count:=count XOR 2 + start

    • n:=n-1

    • start:=start + 2

  • 返品数

例(Python)

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

def solve(n, start):
   count = start
   while n-1 > 0:
      count ^= 2 + start
      n -= 1
      start += 2
   return count

n = 6
start = 2
print(solve(n, start))

入力

6, 2

出力

14

  1. 配列内の反転をカウントするPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −リストが表示されます。必要な反転をカウントして表示する必要があります。 反転カウントは、配列をソートするために必要なステップ数をカウントすることによって取得されます。 次に、以下の実装のソリューションを見てみましょう- 例 # count def InvCount(arr, n):    inv_count = 0    for i in range(n):       for j in range(i + 1, n):  

  2. 配列ローテーション用のPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −テキストとパターンが与えられた場合、パターンのすべての出現とその順列(またはアナグラム)をテキストで印刷する必要があります。 次に、以下の実装のソリューションを見てみましょう- 例 # maximum value MAX = 300 # compare def compare(arr1, arr2):    for i in range(MAX):       if arr1[i] != arr2[i]:       &nbs