C++生成随机数:几何分布(geometric distribution)

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

原文地址:https://www.cnblogs.com/yeahgis/p/2592696.html