hashmap有一個loadFactory為什么是0.75從泊松分布解析看看


簡述:

寫這篇文章是看到網上的一篇面試題,有面試官問hashmap有一個loadFactory為什么是0.75  我先解釋一下 0.75上下文,當一個hashmap初始數組大小暫時不考慮擴容情況,初始情況下它的值是16,隨着hashmap的不斷put操作,統計發現桶數組內累加的entry數  除以當下數組長度比如16  大於0.75  那么hashmap就會成倍的擴容數組,進行rehash;所以這個數字還是蠻關鍵的 。那么這個0.75是怎么定義出來的,為什么不是0.5 ,0.6 或0.7呢 這篇文章 或許你看了 有一定的明白!

 

大學時,我一直覺得統計學很難,還差點掛科。

工作以后才發現,難的不是統計學,而是我們的教材寫得不好。比起高等數學,統計概念其實容易理解多了。

我舉一個例子,什么是泊松分布指數分布?恐怕大多數人都說不清楚。

我可以在10分鍾內,讓你毫不費力地理解這兩個概念。

一、泊松分布

日常生活中,大量事件是有固定頻率的。

  • 某醫院平均每小時出生3個嬰兒
  • 某公司平均每10分鍾接到1個電話
  • 某超市平均每天銷售4包xx牌奶粉
  • 某網站平均每分鍾有2次訪問

它們的特點就是,我們可以預估這些事件的總數,但是沒法知道具體的發生時間。已知平均每小時出生3個嬰兒,請問下一個小時,會出生幾個?

有可能一下子出生6個,也有可能一個都不出生。這是我們沒法知道的。

泊松分布就是描述某段時間內,事件具體的發生概率。

上面就是泊松分布的公式。等號的左邊,P 表示概率,N表示某種函數關系,t 表示時間,n 表示數量,1小時內出生3個嬰兒的概率,就表示為 P(N(1) = 3) 。等號的右邊,λ 表示事件的頻率。

接下來兩個小時,一個嬰兒都不出生的概率是0.25%,基本不可能發生。

接下來一個小時,至少出生兩個嬰兒的概率是80%。

泊松分布的圖形大概是下面的樣子。

可以看到,在頻率附近,事件的發生概率最高,然后向兩邊對稱下降,即變得越大和越小都不太可能。每小時出生3個嬰兒,這是最可能的結果,出生得越多或越少,就越不可能。

二、指數分布

指數分布是事件的時間間隔的概率。下面這些都屬於指數分布。

  • 嬰兒出生的時間間隔
  • 來電的時間間隔
  • 奶粉銷售的時間間隔
  • 網站訪問的時間間隔

指數分布的公式可以從泊松分布推斷出來。如果下一個嬰兒要間隔時間 t ,就等同於 t 之內沒有任何嬰兒出生。

反過來,事件在時間 t 之內發生的概率,就是1減去上面的值。

接下來15分鍾,會有嬰兒出生的概率是52.76%。

接下來的15分鍾到30分鍾,會有嬰兒出生的概率是24.92%。

指數分布的圖形大概是下面的樣子。

可以看到,隨着間隔時間變長,事件的發生概率急劇下降,呈指數式衰減。想一想,如果每小時平均出生3個嬰兒,上面已經算過了,下一個嬰兒間隔2小時才出生的概率是0.25%,那么間隔3小時、間隔4小時的概率,是不是更接近於0?

摘自

http://www.ruanyifeng.com/blog/2015/06/poisson-distribution.html#comment-356111


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM