1

一部のデータをハッシュして、グローバルで一意の ID を生成する必要があります。

一方では、タイムスタンプとネットワーク アドレスの組み合わせを使用できます。これは、すべてのコンピューターが同時に 1 つの ID しか作成できないため、一意です。しかし、このデータは長すぎるため、ハッシュする必要があり、衝突が発生する可能性があります。(補足として、タイムスタンプが十分に正確でない場合は、乱数を投入することもできます。)

一方、乱数を使用してそれをハッシュすることもできます。最初のアプローチとまったく同じハッシュ衝突確率をもたらすべきではありませんか? このアプローチはより高速で、実装がはるかに簡単であるため、興味深いものです。

ランダム データではなく一意のデータを使用する場合、ハッシュ衝突に関して違いはありますか? (ちなみに、私は標準で説明されているように実際の G​​UID を使用しませんが、私のものは 64 ビット長のみです。しかし、それは質問に影響を与えるべきではありません。)

4

1 に答える 1

1

なぜわざわざ乱数をハッシュするのですか? ハッシュは、入力をキースペースに均一にマッピングするように設計されていますが、PRNG はすでに結果の均一なマッピングを提供しています。あなたがしているのは、より多くの仕事を生み出すことだけです。

于 2013-08-31T17:26:24.887 に答える