因為估計時只需要判斷目前數量坐落在 2的次方 中的哪個區間,故只需 (lg(lg n)) 個 bits 就可以了判斷 (lg n) 個邊界。
演算法:
以下是Wiki pedia裡面的算法:計算方式:當一個事件發生時,隨機產生一個低機率觸發計算器增倍,因為機率的關係所以事件的數量會接近期望值。
(c是常數)
推倒過程
※解釋:Xn 為區間值
※解釋:前項 為沒有取中,後項 為取中
Morris+:若是 估計的失敗機率需小於一個特定的值 (如1/3),則可以增加成s倍的Counter再將輸出取平均,就可以將誤差降低。反推回去便可知需要多少數量的 Counter
Morris++:將Morris+中的中位數拿來判斷,若Morris+的中位數失敗,就代表有一半的Morris+失敗