Redis源码中hyperloglog结构的实现原理是啥( 四 )
高位
用于估算放在桶里面的元素个数。
每次都可以获得一个值,也就是桶里面第一次出现
第 1 个桶:计算出
预估元素个数
第 2 个桶:计算出
预估元素个数
....第
个桶:计算出
预估元素个数
均值的计算,HyperLogLog 使用了调和平均数
来估算桶里面的元素个数,那么在有
个桶的情况下,整体的元素个数就可以估算为 
原始的 HyperLogLog 算法其中的
当
的时候,
是发散的;当
的时候,
是收敛的。因此,在使用这个算法的时候最好放入
个桶。
HyperLogLog 分成两块,第一块就是 add 模块,用于分桶和统计;for v in M: set x := h(v); set j = 1 + \u0026lt;x(b),...,x(2),x(1)\u0026gt;; set w := x(b+1)x(b+2)...; set M := max(M, \\rho(w));在 HyperLogLog 算法中,对于集合
中的每一个元素
可以通过 hash 函数转换成一个
序列
其中
推荐阅读
- microsoft redistributable为啥不做成一个带可选项的程序
- 网站完整源码能有途径获取吗
- cygwin下源码编译openssl出错
- redis中的hset怎样快速地找到最大key或最大value,有办法快速地知道一个hset中key的个数 或 value的个数吗
- 怎样借助 redis 进行内容的排序,并将关注的 feed 流推送进来,聚合在一起,显示出来
- 有关JDK源码中一些元素类型在方法实现方面的效率问题请大牛们指点迷津一下,谢谢!?
- wordpress首页文章摘要字数设置具体源码在文中!求大神!
- 开发一个网站的价格,做一个网站要多少钱,需要源码的呢
- 写一个类,让toString()输出这个类的源码
- 如果让一个程序随机的修改自己源码无限制的编译且复制自身,是否有一日会出现一个完善的人工智能
