HLL算法

来源:互联网 发布:网络上jr是什么意思 编辑:程序博客网 时间:2024/05/22 07:42
 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

原创粉丝点击