對(duì)今天挑戰(zhàn)有用的條目都高亮如下:
泊松隨機(jī)變量 Poisson Random Variables
現(xiàn)在我們已經(jīng)知道, 我們可以把許多問題分解成n, x和p來套以下二項(xiàng)分布公式:
如果我們不能用這個(gè)公式計(jì)算p(x)的時(shí)候咋辦? 請看泊松隨機(jī)變量
泊松實(shí)驗(yàn) Poisson Experiment
一個(gè)泊松實(shí)驗(yàn)是一個(gè)有以下性質(zhì)的統(tǒng)計(jì)實(shí)驗(yàn)
- 每次測試的結(jié)果不是成功(s)就是失敗(f).
- 一個(gè)范圍(時(shí)間上或空間上)內(nèi)發(fā)生成功的平均次數(shù)是已知的.
- 成功的概率和范圍的大小是成比例的.
- 在一個(gè)極小范圍里發(fā)生成功的概率可以認(rèn)為是0.
注: 不是很理解, 需要例子.... >:(
泊松分布 Poisson Distribution
一個(gè)泊松隨機(jī)變量是一個(gè)泊松實(shí)驗(yàn)中成功的次數(shù). 一個(gè)泊松隨機(jī)變量的概率分布就稱為一個(gè)泊松分布:
其中:
- e = 2.71828
- λ是在特定范圍里測試成功的平均次數(shù)
- k是在特定范圍里測試成功的實(shí)際次數(shù)
- P(k, λ)是泊松概率, 即當(dāng)平均成功次數(shù)是λ的情況下, 取得正好(不多不少)k次成功的概率.
例子
頂點(diǎn)房地產(chǎn)公司平均每天賣2套房. 那么明天就能賣第三套房的概率是多少?
套公式, λ=2且k=3,則
P(k=3, λ=2) = λke-λ / k!
= 23e-2 / 3!
= 0.180
例子
假設(shè)在非洲大草原上, 游客一天平均能看到5只獅子. 那么游客在第二天會(huì)看到少于4只獅子的概率是多少?
特殊情況
考慮到某些泊松隨機(jī)變量, X, 設(shè)E[X]為X的期望, 求值E[X2]
令Var(X)為X的方差, 如果一個(gè)隨機(jī)變量有泊松分布,那么
- E[X] = λ
- Var[X] = λ
這個(gè)懵逼的推導(dǎo)請戳這里
那么, 我們可以對(duì)任意隨機(jī)變量X的期望和方差有以下性質(zhì):
Var[X] = E[X2] - (E[X])2
E[X2] = Var(X) + (E[X])2
如果這是泊松隨機(jī)變量,就可以
E[X2] = λ + λ2
題目(很坑爹,沒明白)
如果一個(gè)工廠的經(jīng)理打算買A和B兩種機(jī)器中其一, 對(duì)于每天的生產(chǎn)來說:
機(jī)器A需要的修理次數(shù)X是一個(gè)泊松隨機(jī)變量,平均值是0.88,每天的生產(chǎn)成本是CA=160 + 40 × X2
機(jī)器B需要的修理次數(shù)Y是一個(gè)泊松隨機(jī)變量,平均值是1.55,每天的生產(chǎn)成本是CB=128 + 40 × Y2
假設(shè)每次修理的時(shí)間都可以忽略不計(jì),且每晚都維護(hù),保證每天開始機(jī)器都跟新的一樣. 求每天生產(chǎn)成本的期望值.
囧rz,我直接看答案了
這個(gè)不是很理解
題目里說, mean是0.88,其實(shí)是X的期望是0.88
E(X) = 0.88
然后因?yàn)椴此呻S機(jī)變量的性質(zhì)
Var(X) = E(X2) - (E(X))2
Var(X)是X的方差,每個(gè)樣本值減去平均值的差的平方,求和 (總之就是套公式?)
那第二個(gè)就好理解一點(diǎn)
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)))