ホームページ  >  記事  >  バックエンド開発  >  指定された配列を 2 つの半分に分割し、K 回循環シフトを実行した後、ビットごとの OR を使用して配列の合計を求めます。

指定された配列を 2 つの半分に分割し、K 回循環シフトを実行した後、ビットごとの OR を使用して配列の合計を求めます。

王林
王林転載
2023-08-27 23:05:061230ブラウズ

指定された配列を 2 つの半分に分割し、K 回循環シフトを実行した後、ビットごとの OR を使用して配列の合計を求めます。

C では、配列の分割とは、配列を複数の部分配列に分割することを意味します。ビットごとの OR 演算子は、C の 2 つのビットごとの OR インデックス間の比較と計算を処理します。この記事では、k 回の循環シフトを使用します。これは、最後のインデックス位置がゼロのインデックス位置、つまり k 回に従って最初の配列要素に移動されることを意味します。

配列内の循環シフトを理解するために例を見てみましょう。

指定された配列は 1、2、3、4、5、6、7 で、長さは 6 です。

次に、値 3 を k に割り当てます。これは、k 回の循環シフトを意味します。

循環シフトの操作手順は次のとおりです。

ステップ1 -index[6]をindex[1]に移動し、index[5]がindex[6]の位置を保存します。最初の循環シフトは 7,1,2,3,4,5,6 となるため、循環シフトは回転します。

ステップ 2 - 2 番目の循環シフト - 6,7,1,2,3,4,5

3 番目のステップ - 3 番目の循環シフト - 5、6、7、1、2、3、4 (最終結果)

###文法### リーリー

    Vector がキーワードとして使用され、データ型はユーザーが指定したデータ型です。最後に、vector_name はユーザーが割り当てたベクトルの名前を表します。
  • 最初のパラメータはベクトルのサイズを指定します。 2 番目のパラメーターは、ベクトルの各要素を初期化するために使用される値です。
  • リーリー
  • mod(%)

    演算子を使用して配列を 2 つの半分に分割します。ビットごとの OR '|' を使用すると、2 つの要素の各要素の値を取得できます。半分の値。

  • 'arr[(i k)%arr.size()]'

    ビットごとの OR 演算を実行するときのシフト インデックスを表します。これにより、分割配列内の 2 つの要素が得られます。 'splitArray[i%2]'の対応に依存します。

    ###アルゴリズム###

ヘッダー ファイル

'iostream'
  • 'vector'

    を使用してプログラムを開始します。

    'Split_arr_sum_bitwise'
  • という関数を定義します。この関数は、
  • 'arr'

    'k' をパラメータとして受け取ります。この関数は、配列値と循環シフト後の更新された配列値を受け取ります。 関数

    'Split_arr_sum_bitwise'
  • 内で、
  • 'splitArray'

    という名前のベクトル変数を初期化します。この関数は配列の両方の半分を保存します。 次に、ビット単位の OR 演算子 '|' を使用して変数 sum に値 0 を格納します。この値は、後で

    'splitArray'
  • という名前の関数を使用して配列に追加されます。
  • 次に、元の配列を反復処理する最初の for ループを作成します。

  • 次に、ビット演算子

    ‘|’
  • を使用して 2 つの半分の合計を計算する 2 番目の for ループを作成します。この演算子は、K 回循環シフトした後、配列を 2 つの半分に分割します。
  • 次に main 関数を開始します。ここでは、配列値を

    'array'
  • 変数に初期化し、値
  • '3'

    を変数 ' に保存します。 k '、この変数は、指定された配列の回転シフトの数を定義します。 最後に、print ステートメントで、

    'Split_arr_sum_bitwise'
  • という名前の関数を呼び出し、パラメータ
  • 'K'

    'array'これを渡して最終出力を取得します。 Example

    の中国語訳は次のとおりです:
  • Example

このプログラムでは、ビット単位の OR 演算子を使用して配列の合計を実装し、K 回循環シフトした後、配列を 2 つの半分に分割します。

リーリー ###出力### リーリー ###結論は###

配列が半分に分割される K 循環シフトの概念を検討し、ビットごとの OR 演算が合計を実行して分割された配列の値を保存する方法も確認しました。 % モジュロ演算子は配列を半分に分割し、配列インデックス位置でのパリティ計算を示します。

以上が指定された配列を 2 つの半分に分割し、K 回循環シフトを実行した後、ビットごとの OR を使用して配列の合計を求めます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。