Algorithm 多个多重集合是否有类似HyperLogLog的结构?
HyperLogLog估计多集的基数。是否可以将其扩展以处理多个多重集?与此类似,它将支持estimateCardinality(multiset_id),而不仅仅支持查询estimateCardinality()。我试图避免为每个multiset_id使用HyperLogLog值字典Algorithm 多个多重集合是否有类似HyperLogLog的结构?,algorithm,data-structures,Algorithm,Data Structures,HyperLogLog估计多集的基数。是否可以将其扩展以处理多个多重集?与此类似,它将支持estimateCardinality(multiset_id),而不仅仅支持查询estimateCardinality()。我试图避免为每个multiset_id使用HyperLogLog值字典 是否有其他方法(数据结构)来实现这一点?当您拥有大量基数变化较大的多重集时,以下想法可能会有所帮助;也就是说,一些尺寸较大,一些尺寸较小。它不需要你预先估计哪些是小的,哪些是大的 只需稍作改动,您就可以构建一个。
是否有其他方法(数据结构)来实现这一点?当您拥有大量基数变化较大的多重集时,以下想法可能会有所帮助;也就是说,一些尺寸较大,一些尺寸较小。它不需要你预先估计哪些是小的,哪些是大的 只需稍作改动,您就可以构建一个。原始数据结构的每个位置都有一个(逻辑)布尔值。在这里,每个位置本身就是一个经典的集合。而不是在
insert(element)
op如果它落在这个位置,您将在
insert(element, id)
为了节省空间,你需要做一些常识性的技巧。例如,您可以确定,如果id
出现在某一部分箱子中,则它不会存储在箱子集中,而是存储在所有箱子的单独位图中
总的来说,如果您同时拥有小集合和大集合,那么您将得到以下结果:
- 每个大集合的位图(这与您的计数器概念词典中的每个项目的成本相同)
- 每个小集合的某些位集合中的条目(可能比你的计数器字典小得多)