1

VWでハッシュトリックがどのように行われるかを説明できる人はいますか? 具体的には、要旨からの以下の説明:

デフォルトは、マーマーハッシュ v3 (32 ビットのみ) アルゴリズムのバリアントを使用してマシン アーキテクチャの符号なしワードに機能名をハッシュ/射影し、(2^k)-1 で AND 演算します (つまり、最初の k まで射影されます)。残りを 0 にした下位ビット)。

ハッシュが (2^k)-1 と「AND」された結果について言及しています。これは何を意味するのでしょうか?ハッシュが mod 数値 D(hash('my string')%D)である場合、 D 値のみを取ることができる新しい数値になることを理解しています。これはANDと同じですか?もしそうなら、それはどのように正確に機能しますか?

4

1 に答える 1

2

バイナリの (2^k)-1 は "k 個" です。たとえば、(2^6)-1 = 111111 (バイナリ)。元のハッシュ番号と (2^k)-1 に論理積を適用すると、事実上、ハッシュの下位 k ビットのみが取得されます。mod 2^k と同じ演算です。

于 2015-02-09T11:20:51.300 に答える