在HyperLogLog中,32位散列数据的存储桶大小应在4到16位之间。这导致m= 16,32,64,...,65536,错误为1.04/sqrt(m)。M=2^(存储桶大小)。
在这个范围内选择m的原因是什么?
我们选择这样做是因为寄存器数组的内存使用率,以及误差对零的收敛吗?
发布于 2017-06-29 01:08:18
原则上,Hyperloglog算法适用于2的幂的任意数量的存储桶。但是,大多数实现都添加了一些限制。存储桶大小通常在5到8比特之间,并且还取决于实现。
https://stackoverflow.com/questions/44784904
复制相似问题