検索
ホームページJava&#&チュートリアルJava では、サイズ 4 のグループを使用して要素に対してさまざまな XOR 演算を使用して配列を検索します。

Java では、サイズ 4 のグループを使用して要素に対してさまざまな XOR 演算を使用して配列を検索します。

次の文を中国語に翻訳し、HTML コードを保持します。新しいコンテンツを追加する必要はありません。

サイズ N (4 の倍数のサイズ) の整数配列が与えられているので、次のようにする必要があります。 input[1-4] が次のようになるように配列に対して XOR 演算を実行します。 utility_arr[1-4] と計算条件は if 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 − XOR 結果演算後 4 3 2 5

説明-XOR ゲートの出力は、その 2 つの入力端子が「異なる」論理レベルにある場合にのみ「ハイ」になります。入力 A と B の両方が論理レベル「1」または「0」の場合、出力は「0」になり、ゲートは「偶数ゲートではなく奇数ゲート」になります。つまり、入力に 1 が奇数個ある場合、出力は「1」になります。

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

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

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

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

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

Out − XOR 演算後の結果 5 5 7 6 2 14 15 4

説明 - XOR ゲートの出力は、その 2 つの入力端子が互いに「異なる」論理レベルにある場合にのみ「ハイ」になります。入力 A と B の両方が論理レベル「1」または「0」の場合、出力は「0」になり、ゲートは「偶数ゲートではなく奇数ゲート」になります。つまり、入力に 1 が奇数個ある場合、出力は「1」になります。 input[] サイズが 4 の倍数である場合にのみ機能します。他のサイズの入力配列では、奇数の位置に数値の代わりに 0 が表示されます。

XOR 演算後の結果 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)

  • For計算 配列を 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

  • 4 つのグループすべてに対してプロセスを繰り返します

  • Use 2ポインタ i と j は、配列の長さが 4 で割られるまでループを繰り返し、一時的な値 (ans) とユーティリティ配列 (答えを保存するため) を導入します。

  • for ループで次の XOR 演算を実装します。

    ans= input array[i] ⊕ input array[i 3]

    Utility array [ i 1] (b を計算) = 入力配列 [i 1] ⊕ ans

    実際の配列 [i 2] (c を計算) = 入力配列 [i 2] ⊕ ans

    実際の配列 [ i](a を計算) = 入力配列[i]⊕((ユーティリティ配列[i 1])^(ユーティリティ配列[i 2]))

    ユーティリティ配列[i](dを計算))= 入力array[i 3] ⊕ ((Utility array[i 1]) ^ (Utility array[i 2]))

  • そしてポインタは次の 4 文字のセットに更新されます

  • #最後に、配列を出力し、結果をユーザーに返します。

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 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はtutorialspointで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか?高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか?Mar 17, 2025 pm 05:46 PM

この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

適切なバージョン化と依存関係管理を備えたカスタムJavaライブラリ(JARファイル)を作成および使用するにはどうすればよいですか?適切なバージョン化と依存関係管理を備えたカスタムJavaライブラリ(JARファイル)を作成および使用するにはどうすればよいですか?Mar 17, 2025 pm 05:45 PM

この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。

カフェインやグアバキャッシュなどのライブラリを使用して、Javaアプリケーションにマルチレベルキャッシュを実装するにはどうすればよいですか?カフェインやグアバキャッシュなどのライブラリを使用して、Javaアプリケーションにマルチレベルキャッシュを実装するにはどうすればよいですか?Mar 17, 2025 pm 05:44 PM

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか?キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか?Mar 17, 2025 pm 05:43 PM

この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか?Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか?Mar 17, 2025 pm 05:35 PM

Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター