View Code
long cls_random::randomGeometric(
    bool    shifted,
    double  probability)
{
    long rnd = 0;
    while(true)
    {
        rnd++;
        double pV = (double)rand()/(double)RAND_MAX;
        if (pV<probability)
        {
            break;
        }
    }
    if (!shifted)
    {
        rnd--;
    }
    return rnd;
}

shifted geometric:

    期望:E=1/p

    方差:V=(1-p)/(p*p)

no shifted geometric:

    期望:E=(1-p)/p

    方差:V=(1-p)/(p*p)

 

wiki:http://zh.wikipedia.org/wiki/%E5%B9%BE%E4%BD%95%E5%88%86%E4%BD%88

posted on 2012-07-15 21:05  yeahgis  阅读(1887)  评论(0编辑  收藏  举报