Redis源码中hyperloglog结构的实现原理是啥( 二 )
都对应着一个
序列。
在介绍 HyperLogLog 之前,我们可以考虑这个实际的场景。在一个抛硬币的场景下,假设硬币的正面对应着
硬币的反面对应着
依次扔出
的概率是多少?通过概率计算可以得到是这个概率是
那么相当于平均需要扔
次,才会获得
这个序列。反之,如果出现了
这个序列,说明起码抛了
次硬币。
考虑这样一个
序列,
令
表示第一个
出现的位置。也就是说
那么在扔硬币的场景下,出现这样的序列平均至少需要扔
次。对于一批大量的随机的
序列, 可以根据第一个
出现的位置来估算这批
序列的个数。也就是说:
出现序列
意味着不重复的元素估计有
个;出现序列
意味着不重复的元素估计有
个;出现序列
意味着不重复的元素估计有
个;出现序列
意味着不重复的元素估计有
个。于是,对于随机的
序列,可以定义函数
来表示
出现的第一个位置。i.e.
推荐阅读
- microsoft redistributable为啥不做成一个带可选项的程序
- 网站完整源码能有途径获取吗
- cygwin下源码编译openssl出错
- redis中的hset怎样快速地找到最大key或最大value,有办法快速地知道一个hset中key的个数 或 value的个数吗
- 怎样借助 redis 进行内容的排序,并将关注的 feed 流推送进来,聚合在一起,显示出来
- 有关JDK源码中一些元素类型在方法实现方面的效率问题请大牛们指点迷津一下,谢谢!?
- wordpress首页文章摘要字数设置具体源码在文中!求大神!
- 开发一个网站的价格,做一个网站要多少钱,需要源码的呢
- 写一个类,让toString()输出这个类的源码
- 如果让一个程序随机的修改自己源码无限制的编译且复制自身,是否有一日会出现一个完善的人工智能
