概率論中指數分布的應用


HDU5015(北京網絡賽題目)

 

題目大意:

 

Matt去發快遞,快遞點有N個職員,職員處理一個客戶的時間服從指數分布:f(t)=λeλt,其中的參數λ為職員的效率,現在給出每個職員的效率,同時給了一個場景:現在每個職員都有且只有客戶在服務中,此人還從信息牌得知了每個職員已經為當前客戶服務了c時間,題目中也給出了,一旦有客戶被服務完畢,則這個人就立刻去接受服務。問在此場景下,這個人發快遞需要的時間的期望是多少?

 

解析:

首先幾何分布的一些性質: 
一個幾何分布的概率密度函數是: 

f(xλ)={λeλx0,x0,,x<0.


概率分布函數為: 

F(xλ)={1eλx0,x0,,x<0.


指數分布具有“無記憶性”,如果一個隨機變量呈指數分布,它的條件概率遵循: 

P(T>s+t|T>t)=P(T>s)for all s,t0.


然后分析該題目,利用指數分布的無記憶性可以知道,如t0時刻,第i個職員第一個服務完當前客戶,那么接着就會服務Matt,然后服務完Matt。這個過程時間的期望就是我們要求的結果。 
因此我們要求的就是: 

i=1N+0(E(Xi)+x)λieλiji(+xf(x:λj)dx)dx


解釋下上面長長的式子: 
i個職員t時刻接待Matt的概率為λieλi(此時第i個結束時間為t的概率),乘上ji+xf(x:λj)dx(其它職員結束時間大於t的概率));而這種情況下的時間為(E(Xi)+t) 
t可以從0一直取到+,把所有的職員按照上面的情況分析一邊,就有了上面的那個式子了。由於指數分布的無記憶性,可以知道題目中給的已服務時間實際上是沒有用的…… 
剩下的就是一些化簡計算了, 

k=1N+0(E(Xi)+x)λieλiji(+xf(x:λj)dx)dx=k=1N+0(E(Xi)+x)λieλijieλjdx=k=1N+0(E(Xi)+x)λieNi=1λidx=k=1N(1Ni=1λi+λi(Ni=1λi)2)=N+1Ni=1λi


有了這個公式代碼應該是不難寫,不過要注意這題數據比較多,cin或許或TLE~

這題是一道概率論的原題,可是比賽的時候看題都用了半天,最后還是沒有過掉

鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=5035

 

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
const int maxn=1000+10;
double a[maxn],c[maxn];
int main()
{
    int n,t;
    scanf("%d",&t);
    for(int cas=1;cas<=t;cas++)
    {
        scanf("%d",&n);
        double sum=0.0;
        for(int i=1;i<=n;i++)
        {
            scanf("%lf",&a[i]);
            sum+=a[i];
        }
        for(int i=1;i<=n;i++)
            scanf("%lf",&c[i]);
        printf("Case #%d: %.6lf\n",cas,(n+1.0)/sum);
    }
    return 0;
}


 


免責聲明!

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



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