Adding
一个可运行的 HyperLogLog 实现必须有:
- 一系列的 寄存器 (),可以实现为一个数组
-
一个 精度 () 参数,通常为 4 - 16,必须在创建时指定
- 决定了有多少个寄存器可用 (2^n)
- 更多的寄存器可以减少计数中的错误,但需要牺牲更多的内存
- 一个 哈希函数 (),用于将数据散列为一个 32 位整数
HyperLogLog 基于当前所有寄存器的状态估计 基数 ()
如下所示,添加一个数据可能就会彻底改变寄存器的状态。
动手试一试
用下面的小工具查看在 HyperLogLog 中添加一项数据时会发生什么
数据项 ()
精度 ()
尝试输入值并“添加”,或者点击“随机”插入一个随机值