【发布时间】:2017-03-05 07:04:19
【问题描述】:
我已经找到了数十种关于 LogLog 算法基本思想的解释,但它们都缺乏关于 hash 函数结果拆分如何工作的细节? 我的意思是使用单个 hash功能不精确,而使用许多功能太昂贵。 他们如何克服单一哈希函数的问题?
This answer 是我找到的最好的解释,但对我来说仍然没有意义:
他们使用一个散列,但将其分成两部分。一个被称为 桶(桶的总数是 2^x)和另一个 - 基本上是 和我们的哈希一样。我很难理解发生了什么,所以我 将举一个例子。假设你有两个元素和你的哈希 给出从 0 到 2^10 的值的函数产生 2 个值:344 和 387. 你决定有 16 个桶。所以你有:
0101 011000 bucket 5 will store 1 0110 000011 bucket 6 will store 4
你能解释一下上面的例子吗?你应该有 16 个桶,因为你有长度为 4 的标题,对吧?那么如何才能拥有 16 个只有两个哈希的桶呢?我们只估计桶,对吗?所以第一个桶大小为 1,第二个桶大小为 4,对吧?如何合并结果?
【问题讨论】:
标签: database algorithm math data-structures hyperloglog