(概率计数)利用一个b位的计数器,我们一般只能计数到2b-1。而用R.Morris概率计数法,我们可以计数到一个大得多的值,代价是精度有所损失。
对i=0,1,...,2b-1,令计数器值i表示ni的计数,其中ni构成了一个非负的递增序列。假设计数器初始值为0,表示计数n0=0,INCREMENT运算单工作在一个计数器上,它以概率的方式包含值i。如果i=2b-1,则该运算单元报告溢出错误,否则,INCREMENT运算单元以概率1/(ni+1-ni)把计数器增加1,以概率1-1/(ni+1-ni)保持计数器不变。
对所有的
,若选择ni=i,此计数器就是一个普通的计数器。若选择ni=2i-1(i>0),或者ni=Fi(第i个斐波那契数),则会出现更多有趣的情形。
对于这个问题,假设
已足够大,发生一个溢出错误的概率可以忽略。
a.请说明在执行n次INCREMENT操作后,计数器所表示的数期望正好是n。
b.分析计数器表示的计数的方差依赖于ni序列。我们来看一个简单情形:对所有
,ni=100i。我们执行了n次INCREMENT操作后,请估计计数器所表示的方差。
