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

データ構造の乗算によるハッシュ


ここでは、乗算法によるハッシュについて説明します。このために、ハッシュ関数-

を使用します
ℎ(𝑥) = ⌊𝑚𝑥𝐴⌋ 𝑚𝑜𝑑 𝑚

ここで、Aは実数値の定数です。この方法の利点は、mの値がそれほど重要ではないことです。 mを2の累乗としても取ることができます。 Aのどの値でもハッシュ関数が得られますが、Aの値の中には他の値よりも優れているものがあります。

Knuthによると、Aには黄金比を使用できるため、Aは

$$ A =\ frac {\ sqrt5-1} {2} =0.61803398 $$

もちろん、Aにどの値を選択しても、鳩の巣原理は、u≥nmの場合、1つのハッシュ値iとサイズnのS⊆Uが存在し、すべてのxに対してh(x)=iになることを意味します。 Sで。

したがって、乗算による最悪の場合のハッシュは、除算によるハッシュと同じくらい悪いと言えます。


  1. データ構造のRツリー

    ここにR-Treesデータ構造が表示されます。 Rツリーは、特別なデータインデックスを効率的に格納するために使用されます。この構造は、特別なデータクエリとストレージを保持するのに非常に役立ちます。このRツリーには実際のアプリケーションがいくつかあります。これらは以下のようなものです- 多次元情報の索引付け ゲームデータの処理 地理空間座標を保持する 仮想マップの実装 Rツリーの一例は以下のようなものです。 対応するRツリーは次のようになります- Rツリーのプロパティ Rツリーは、単一のルート、内部、およびリーフノードで構成されています ル

  2. ハーフエッジデータ構造

    はじめに テンプレートパラメータまたはハーフエッジデータ構造(HalfedgeDSと略記)のHDSは、平面マップ、多面体、またはその他の方向付け可能な2次元など、頂点、エッジ、および面の入射情報を維持できるエッジ中心のデータ構造として定義されます。ランダムな次元に埋め込まれたサーフェス。各エッジは、反対方向の2つのハーフエッジに分割されます。各ハーフエッジには、1つの入射面と1つの入射頂点が格納されます。各面と各頂点に1つの入射ハーフエッジが格納されます。ハーフエッジデータ構造のバリエーションを減らすと、面のハーフエッジポインタや面の保存など、この情報の一部を削除できます。 ハーフエッジデ