|
0
|
| Phenomenal One · 技术社区 · 8 年前 |
|
|
1
4
Flajolet-Martin
和
HyperLogLog
算法是关于获取
近似
不同元素的计数(
count-distinct problem
)在一条溪流中
(旁白:
更一般而言,Flajolet-Martin算法或HyperLogLog不/不能构成
使用的算法
1-有趣的是,
|
|
|
2
1
这个
另一方面,像HyperLogLog这样的基数估计器很适合回答这样的问题:“有多少不同的元素,给或取几个百分比?”当你需要粗略估计你看到了多少不同的东西,将所有东西放在哈希表或二叉搜索树中这样的方法会占用太多内存(例如,如果你是一个Google web服务器,你想计算访问你的不同IP地址),它们非常适合,因为它们使用的内存量通常是您需要提前获取的。然而,他们不允许你回答“我看到了吗?”
这正是以前的事
?“因此不能作为任何
简而言之,这里的数据结构旨在解决不同的问题。传统的BST和哈希表用于精确查询,其中确定是否看到了某些内容是目标,并且希望能够(比如)迭代看到的所有元素。基数估计器很好,你只关心有多少个完全不同的元素,你不关心它们是什么,你不需要精确的答案。 |
|
|
5rod · 编写python程序来解决特定问题? 2 年前 |
|
|
yazumin · 嵌套在集合中的映射列表 2 年前 |
|
|
Ama · 如何在Python集合理解中根据布尔语句添加元素对? 2 年前 |
|
|
petem · 使用图像作为为Julia集着色的轨道陷阱 2 年前 |
|
|
user4202236 · java中的拆分集 2 年前 |
|
|
Cesar Justo · 如何将列表的值修改为java流? 2 年前 |