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

原文地址:https://www.cnblogs.com/zhangfengshi/p/13408687.html