基数估计什么场景下会用到?
假如你有一个巨大的含有重复数据项数据集,这个数据集过于庞大以至于无法全部放到内存中处理。现在你想知道这个数据集里有多少不同的元素,但是数据 集没有排好序,而且对如此大的一个数据集进行排序和计数几乎是不可行的。你要如何估计数据集中有多少不同的数据项?很多应用场景都涉及这个问题,例如设计 数据库的查询策略:一个良好的数据库查询策略不但和总的数据量有关,同时也依赖于数据中不同数据项的数量。
引入
假设你通过如下步骤生成了一个数据集:
1、随机生成n个服从均匀分布的数字
2、随便重复其中一些数字,重复的数字和重复次数都不确定