1

もちろん、考えられる入力形式に基づいて、ハッシュ関数が入力に対して実行する必要がある操作を決定するタスクにどのようにアプローチするのが最善なのか疑問に思っていました。

まだ見つけていないルール(本)はありますか?

そのような機能のコストをどのように見積もることができますか?

入力に使用される文字セットを知っていれば、衝突の可能性を予測できますか?

事前に考えてくれてありがとう。:)

4

2 に答える 2

1

..。

こんにちはガンフー、

次の場所でCRC32とFNV1A_Yorikkeの対決を見てください。

http://www.sanmayce.com/Fastest_Hash/index.html#KT_torture3

そのような関数のコストをどのように見積もることができますか?

要するに:重くて用途の広いキー/ロード。一般に、ハッシュ(テーブルルックアップ)関数には、考慮すべき3つの主要な側面があります。

  • 最も太いスロットの分散と最大深度の両方の衝突。

  • ウォームアップ時間、つまり開始コスト/オーバーヘッド。

  • 線形速度。

于 2012-10-22T16:14:07.090 に答える
0

ハッシュコード生成の一般的な経験則は、結果の値をできるだけ一意にすることです。ハッシュコード/ハッシュ関数で望ましい2つのこと

  1. ハッシュコードは、できるだけユニーク (かつ小さい) であることが望まれます。そうは言っても、(理想的な世界では)データ型がフットプリントが小さく、値のインスタンスに対して一意であることが保証できるデータメンバーを使用することは、ハッシュコードに到達するための高速で効率的な方法です。ただし、これは安全な方法ではない場合があります。
  2. ハッシュ関数は完全である必要があります。つまり、すべての値が小さな範囲内で生成される一意の値を生成できる必要があります。
于 2012-09-28T14:59:16.733 に答える