我有n個鍵和一個大小爲n的散列表。期望散列時的空槽數量
我想弄清楚空插槽的預期數量。
我知道統一的哈希假設表明每個密鑰都可能進入任何時隙。
到目前爲止,我已經提出了n個密鑰,每個密鑰都有n個時隙的相等概率,所以n^2種可能的組合。
我不確定從哪裏去,在正確的方向任何點將不勝感激! 謝謝。
我有n個鍵和一個大小爲n的散列表。期望散列時的空槽數量
我想弄清楚空插槽的預期數量。
我知道統一的哈希假設表明每個密鑰都可能進入任何時隙。
到目前爲止,我已經提出了n個密鑰,每個密鑰都有n個時隙的相等概率,所以n^2種可能的組合。
我不確定從哪裏去,在正確的方向任何點將不勝感激! 謝謝。
首先,可能的組合數不n^2
但n^n
由於每個n
鍵具有n
可能性在時隙中降落。
接着,由於所有的槽是對稱的,預期數空槽E = n * P
的,其中P
是每個單時隙結束空的概率。這是由於linearity of expectation即使在隨機值依賴時也是如此。
現在請注意,單個密鑰未出現在此插槽中的概率爲Q
爲Q = (n - 1)/n
。
由於有n
密鑰,所以沒有密鑰在固定槽中着陸的概率P
是Q^n
。總結一下,我們有E = n * ((n - 1)/n)^n
。 (n - 1/n)^n
的限制是1/e
(see here),因此空槽的預期數目是n/e
。
首先,你應該指定哈希表的類型(每個槽可能有多個單元?如果不是,哪個溢出處理,即哪個策略用於確定替代槽或類似的東西?)和實際散列函數(包括數據類型的元素)。 – deviantfan
這個問題純粹是以理論爲基礎的,這就是我得到的一切。 – user3196347