Hackrank 统计十日通(第五天) 泊松分布

来源

对今天挑战有用的条目都高亮如下:

泊松随机变量 Poisson Random Variables

现在我们已经知道, 我们可以把许多问题分解成n, x和p来套以下二项分布公式:



如果我们不能用这个公式计算p(x)的时候咋办? 请看泊松随机变量

泊松实验 Poisson Experiment

一个泊松实验是一个有以下性质的统计实验

  • 每次测试的结果不是成功(s)就是失败(f).
  • 一个范围(时间上或空间上)内发生成功的平均次数是已知的.
  • 成功的概率和范围的大小是成比例的.
  • 在一个极小范围里发生成功的概率可以认为是0.

注: 不是很理解, 需要例子.... >:(

泊松分布 Poisson Distribution

一个泊松随机变量是一个泊松实验中成功的次数. 一个泊松随机变量的概率分布就称为一个泊松分布:



其中:

  • e = 2.71828
  • λ是在特定范围里测试成功的平均次数
  • k是在特定范围里测试成功的实际次数
  • P(k, λ)是泊松概率, 即当平均成功次数是λ的情况下, 取得正好(不多不少)k次成功的概率.

例子

顶点房地产公司平均每天卖2套房. 那么明天就能卖第三套房的概率是多少?


套公式, λ=2且k=3,则
P(k=3, λ=2) = λke / k!
= 23e-2 / 3!
= 0.180

例子

假设在非洲大草原上, 游客一天平均能看到5只狮子. 那么游客在第二天会看到少于4只狮子的概率是多少?


特殊情况

考虑到某些泊松随机变量, X, 设E[X]为X的期望, 求值E[X2]

令Var(X)为X的方差, 如果一个随机变量有泊松分布,那么

  • E[X] = λ
  • Var[X] = λ

这个懵逼的推导请戳这里
那么, 我们可以对任意随机变量X的期望和方差有以下性质:
Var[X] = E[X2] - (E[X])2
E[X2] = Var(X) + (E[X])2
如果这是泊松随机变量,就可以
E[X2] = λ + λ2

题目(很坑爹,没明白)

如果一个工厂的经理打算买A和B两种机器中其一, 对于每天的生产来说:
机器A需要的修理次数X是一个泊松随机变量,平均值是0.88,每天的生产成本是CA=160 + 40 × X2
机器B需要的修理次数Y是一个泊松随机变量,平均值是1.55,每天的生产成本是CB=128 + 40 × Y2
假设每次修理的时间都可以忽略不计,且每晚都维护,保证每天开始机器都跟新的一样. 求每天生产成本的期望值.

囧rz,我直接看答案了

Hackrank 统计十日通(第五天) 泊松分布_第1张图片
exp-var-poisson.png

这个不是很理解
题目里说, mean是0.88,其实是X的期望是0.88
E(X) = 0.88

然后因为泊松随机变量的性质
Var(X) = E(X2) - (E(X))2
Var(X)是X的方差,每个样本值减去平均值的差的平方,求和 (总之就是套公式?)

那第二个就好理解一点

python

from math import factorial, e

a, b = [float(x) for x in input().split()]

def poisson(mean, value):
    return (mean**value * e**-mean) / factorial(value)

def cost_a(x):
    return 160 + 40 * x**2

def cost_b(y):
    return 128 + 40 * y**2

def avg_cost(rate, cost_func):
    avg = 0
    for repairs in range(11): #为什么是11,原作者表示这是蒙的,越大越精确.....
        avg += poisson(rate, repairs) * cost_func(repairs) 
    return avg

print('{:0.3f}'.format(avg_cost(a, cost_a)))
print('{:0.3f}'.format(avg_cost(b, cost_b)))

你可能感兴趣的:(Hackrank 统计十日通(第五天) 泊松分布)