我已经找到了数十种关于 LogLog 算法基本思想的解释,但它们都缺乏关于哈希函数结果拆分如何工作的细节?我的意思是使用单个散列函数并不精确,而使用多个函数太昂贵。他们如何克服单一哈希函数的问题?
这个答案是我找到的最好的解释,但对我来说仍然没有意义:
他们使用一个哈希,但将其分为两部分。一个称为桶(桶的总数为 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,对吧?如何合并结果?