HLL算法

 HLL算法,主要是用于统计一系列数据中的不同数目的个数,是一个概率性的算法,在空间上有很大优势。

HLL算法步骤:

1 选定一个hash函数,把给定的数据hash为一个32位bit数据(不一定是32位)
2 统计每个数据中第一次出现1的位置(k1, k2, k3....
3 k = max(k1, k2, k3 ...)
4 那么不同个数result = 2^k

为了使结果更加准确,可以使用分桶的方法,然后取平均数的做法。


其中redis的hyperloglog.c就是采用了HLL算法来实现redis中基数统计的。


更为详细的算法原理以及实现可以搜索HLL或者hyperloglog算法等关键词来获取。。


随便贴个链接吧。。

http://www.arthuryangcs.com/2016/12/26/Redis%E6%BA%90%E7%A0%81%E5%89%96%E6%9E%90%EF%BC%88%E4%BA%8C%EF%BC%89-HyperLogLog%E5%B0%8F%E8%AE%AE/


http://blog.csdn.net/firenet1/article/details/77247649


一个在线的例子http://content.research.neustar.biz/blog/hll.html

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值