ホームページ バックエンド開発 PHPチュートリアル PHP のビット演算を使用して配列の交差部分と和集合をすばやく計算する

PHP のビット演算を使用して配列の交差部分と和集合をすばやく計算する

Apr 30, 2024 pm 05:45 PM
集める ビット演算

PHP では、配列の交差と共用体はビット単位の演算子を使用して効率的に計算できます。 交差: ビット単位の AND 演算子 (&) を使用すると、共存する要素が交差になります。ユニオン: ビットごとの OR 演算子 (|) を使用すると、ユニオンにはすべての要素が含まれます。

PHP のビット演算を使用して配列の交差部分と和集合をすばやく計算する

PHP でビット単位の演算を使用して、配列の共通部分と和集合をすばやく計算します。

ビット単位の演算子は、配列の実装を提供します。 PHP 交差と結合のための効率的なメソッド。これらの演算子は数値をビットごとに操作し、バイナリ ビット レベルで配列値を比較できるようにします。

Intersection

交差には、両方の配列に現れる要素が含まれています。ビット単位の AND 演算子 & を使用して交差部分を計算できます。

<?php

$array1 = [1, 2, 3, 4, 5];
$array2 = [3, 4, 5, 6, 7];

$intersection = array_intersect_bitwise($array1, $array2);

var_dump($intersection); // 输出: [3, 4, 5]
?>
ログイン後にコピー

Union

union には、両方の配列のすべての要素が含まれます。ビット単位の OR 演算子 | を使用して和集合を計算できます。

<?php

$array1 = [1, 2, 3, 4, 5];
$array2 = [3, 4, 5, 6, 7];

$union = array_union_bitwise($array1, $array2);

var_dump($union); // 输出: [1, 2, 3, 4, 5, 6, 7]
?>
ログイン後にコピー

実際のケース: ユーザーが訪問したページを計算します

次のように仮定します。ユーザーが訪問したページを含む配列があります:

<?php

$userPages = [
    'Home',
    'About',
    'Contact'
];

$adminPages = [
    'Dashboard',
    'Users',
    'Settings',
    'About'
];
?>
ログイン後にコピー

ビット単位の演算を使用して、ユーザーと管理者の両方が訪問したページをすばやく見つけることができます:

<?php

$intersection = array_intersect_bitwise($userPages, $adminPages);

var_dump($intersection); // 输出: ['About']
?>
ログイン後にコピー

以上がPHP のビット演算を使用して配列の交差部分と和集合をすばやく計算するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホット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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Go 言語でコレクションのような関数を実装するのはなぜ難しいのでしょうか? Go 言語でコレクションのような関数を実装するのはなぜ難しいのでしょうか? Mar 24, 2024 am 11:57 AM

Go 言語ではコレクションのような関数を実装するのが難しく、多くの開発者を悩ませている問題です。 Python や Java などの他のプログラミング言語と比較して、Go 言語には set や map などの組み込みのコレクション型が存在しないため、コレクション関数を実装する際に開発者にいくつかの課題が生じます。まず、コレクションのような機能を Go 言語で直接実装することがなぜ難しいのかを見てみましょう。 Go 言語で最も一般的に使用されるデータ構造はスライスとマップであり、コレクションのような関数を完成させることができますが、

Java コレクションのソートパフォーマンスを最適化する方法 Java コレクションのソートパフォーマンスを最適化する方法 Jun 30, 2023 am 10:43 AM

Java は、さまざまな種類のソフトウェア開発で広く使用されている強力なプログラミング言語です。 Java 開発では、コレクションの並べ替えを伴うシナリオが頻繁に含まれます。ただし、コレクションソートの性能最適化を行わないと、プログラムの実行効率が低下する可能性があります。この記事では、Java コレクションの並べ替えのパフォーマンスを最適化する方法について説明します。 1. 適切なコレクション クラスの選択 Java には、ArrayList、LinkedList、TreeSet など、並べ替えに使用できるコレクション クラスが多数あります。さまざまなコレクションクラスが含まれています

C++ のビット演算とその応用スキル C++ のビット演算とその応用スキル Aug 22, 2023 pm 12:39 PM

C++ のビット演算は、プログラマーの間でよく使用される演算方法であり、ビット演算を使用してデータを処理することにより、一部の複雑な計算タスクをより効率的に完了できます。この記事では、C++でよく使われるビット演算記号とその応用テクニック、そして実際の開発で使える例を紹介します。ビット演算記号 C++ には、バイナリ ビットを演算できる 6 つのビット演算記号が用意されており、そのうち 4 つはビット演算子、他の 2 つはシフト演算子です。ビット単位の演算記号は次のとおりです。 & ビット単位の AND 演算: 両方の 2 進ビットは次のとおりです。

C# における一般的な同時コレクションとスレッド セーフティの問題 C# における一般的な同時コレクションとスレッド セーフティの問題 Oct 09, 2023 pm 10:49 PM

C# における一般的な同時コレクションとスレッド セーフティの問題 C# プログラミングでは、同時操作の処理は非常に一般的な要件です。スレッド セーフティの問題は、複数のスレッドが同時に同じデータにアクセスして変更する場合に発生します。この問題を解決するために、C# はいくつかの同時コレクションおよびスレッド セーフ メカニズムを提供します。この記事では、C# の一般的な同時コレクションとスレッド セーフティの問題に対処する方法を紹介し、具体的なコード例を示します。同時コレクション 1.1ConcurrentDictionaryConcurrentDictio

Laravel コレクションの Where メソッドの実践ガイド Laravel コレクションの Where メソッドの実践ガイド Mar 10, 2024 pm 04:36 PM

Laravel コレクションの Where メソッドに関する実践ガイド Laravel フレームワークの開発中、コレクションは、データを操作するための豊富なメソッドを提供する非常に便利なデータ構造です。中でも、Where メソッドは、指定した条件に基づいてコレクション内の要素をフィルタリングできる、一般的に使用されるフィルタリング メソッドです。この記事では、Laravel コレクションでの Where メソッドの使用法を紹介し、特定のコード例を通じてその使用法を示します。 1. Whereメソッドの基本的な使い方

HashSet クラスの addAll() メソッドを使用して、あるコレクションから別のコレクションにすべての要素を追加します。 HashSet クラスの addAll() メソッドを使用して、あるコレクションから別のコレクションにすべての要素を追加します。 Jul 24, 2023 am 08:58 AM

HashSet クラスの addAll() メソッドを使用して、コレクション内のすべての要素を別のコレクションに追加します。HashSet は、Java コレクション フレームワークの実装クラスです。AbstractSet を継承し、Set インターフェイスを実装します。 HashSet はハッシュ テーブルに基づく順序なしのセットであり、要素の重複は許可されません。これには、コレクション内の要素を操作するためによく使用されるメソッドが多数用意されており、その 1 つが addAll() メソッドです。 addAll() メソッドの機能は、指定されたものを追加することです。

Java Iterator と Iterable: エレガントなコードを書くためのステップ Java Iterator と Iterable: エレガントなコードを書くためのステップ Feb 19, 2024 pm 02:54 PM

Iterator インターフェイス Iterator インターフェイスは、コレクションを走査するために使用されるインターフェイスです。 hasNext()、next()、remove() などのいくつかのメソッドが提供されます。 hasNext() メソッドは、コレクション内に次の要素があるかどうかを示すブール値を返します。 next() メソッドは、コレクション内の次の要素を返し、それをコレクションから削除します。 Remove() メソッドは、コレクションから現在の要素を削除します。次のコード例は、Iterator インターフェイスを使用してコレクションを反復処理する方法を示しています。 Listnames=Arrays.asList("John","Mary","Bob");Iterator

C++ のビット演算を使用して 2 つの符号なし数値を加算する C++ のビット演算を使用して 2 つの符号なし数値を加算する Aug 27, 2023 pm 05:53 PM

ビット ストリームとして表現される符号なし数値は、バイナリ形式で書き込まれます。 54 の 2 進数形式は 110110 です。ビットを使用して 2 つの数値を加算するには、バイナリ加算ロジックのバイナリ形式を使用して加算します。ビット加算のルールは、-0+0=01+0=10+1=11+1=0、キャリー=1です。例として 2 つの数値を加算します。入力: a=21(10101),b= 27 (11011)出力:48(110000)説明-10101+11011=110000。最下位ビットからビットを追加していきます。そして次の人に伝わります。例#include<bits/stdc++.h>#defineM3

See all articles