![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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