衝突を軽減/回避するために再ハッシュを使用しHashtable
ていると言われています。.NET
すなわち。「再ハッシュは次のように機能します。ハッシュの異なる関数 H1 ... Hn のセットがあると仮定します。ハッシュ テーブルからアイテムを挿入または取得するとき、最初に H1 ハッシュ関数が使用されます。これが衝突につながる場合は、代わりに H2 が試行され、Hashtable での衝突を回避するために Hn まで試行されます。」</p>
仮定: 漸近的な時間の複雑さが o(1) である n (n < Infinity) 要素を持つハッシュテーブルがあります。私たち (CLR) は、いくつかのハッシュ関数 (n>1 の Hn-1 ハッシュ関数) を適用しながらこれを達成しました。
質問: (異なるハッシュ関数が使用されている場合) 任意の要素をシーク (取得) するときに、CLR が Key をハッシュ コードにマップする方法を誰か説明してもらえますか? CLR はどのようにライブ オブジェクト (ハッシュ テーブル) のハッシュ関数を (もしあれば) 追跡しますか?
前もって感謝します