2014-03-12 57 views
1

我有n個鍵和一個大小爲n的散列表。期望散列時的空槽數量

我想弄清楚空插槽的預期數量。

我知道統一的哈希假設表明每個密鑰都可能進入任何時隙。

到目前爲止,我已經提出了n個密鑰,每個密鑰都有n個時隙的相等概率,所以n^2種可能的組合。

我不確定從哪裏去,在正確的方向任何點將不勝感激! 謝謝。

+0

首先,你應該指定哈希表的類型(每個槽可能有多個單元?如果不是,哪個溢出處理,即哪個策略用於確定替代槽或類似的東西?)和實際散列函數(包括數據類型的元素)。 – deviantfan

+0

這個問題純粹是以理論爲基礎的,這就是我得到的一切。 – user3196347

回答

1

首先,可能的組合數不n^2n^n由於每個n鍵具有n可能性在時隙中降落。

接着,由於所有的槽是對稱的,預期數空槽E = n * P的,其中P是每個時隙結束空的概率。這是由於linearity of expectation即使在隨機值依賴時也是如此。

現在請注意,單個密鑰未出現在此插槽中的概率爲QQ = (n - 1)/n

由於有n密鑰,所以沒有密鑰在固定槽中着陸的概率PQ^n。總結一下,我們有E = n * ((n - 1)/n)^n(n - 1/n)^n的限制是1/esee here),因此空槽的預期數目是n/e

+0

我不認爲你會說「接下來,由於所有時隙都是對稱的,空時隙的預期數量E = n * P,其中P是每個單個時隙結束爲空的概率。」只有當空位是獨立事件時纔是如此。我看不出他們是如何獨立的。一個空位顯然會影響其他人的可能性。或者我錯過了什麼? – Gene

+0

@Gene:由於期望的線性,這實際上是真的。我在答案中澄清了這一點。謝謝。 – Gassa

相關問題