7个不稳定版本

0.4.1 2022年6月13日
0.4.0 2021年4月7日
0.3.0 2021年1月16日
0.2.2 2020年9月23日
0.1.0 2020年4月16日

#389算法

Download history 1037/week @ 2024-03-13 864/week @ 2024-03-20 410/week @ 2024-03-27 759/week @ 2024-04-03 1185/week @ 2024-04-10 1121/week @ 2024-04-17 684/week @ 2024-04-24 918/week @ 2024-05-01 644/week @ 2024-05-08 700/week @ 2024-05-15 616/week @ 2024-05-22 534/week @ 2024-05-29 522/week @ 2024-06-05 1064/week @ 2024-06-12 742/week @ 2024-06-19 504/week @ 2024-06-26

2,989 每月下载量
用于 3 crates

MIT 许可证

185KB
6K SLoC

HyperLogLog

Build status Crates.io Documentation

HyperLogLog是一种用于估计多集(multiset)中不同元素(distinct elements,cardinality)数量的概率算法。P. Flajolet等人描述的原始算法的几个变体已被提出。

以下提供了以下实现

用法

添加到 Cargo.toml

[dependencies]
hyperloglogplus = "*"

使用Rust编译器版本1.45.0或更高版本时,请考虑启用const-loop功能以获得更好的性能,更多信息请参阅此处

[dependencies]
hyperloglogplus = { version = "*", features = ["const-loop"] }

使用HyperLogLog++实现的简单示例

use std::collections::hash_map::RandomState;
use hyperloglogplus::{HyperLogLog, HyperLogLogPlus};

let mut hllp: HyperLogLogPlus<u32, _> =
    HyperLogLogPlus::new(16, RandomState::new()).unwrap();

hllp.insert(&12345);
hllp.insert(&23456);

assert_eq!(hllp.count().trunc() as u32, 2);

评估

在此处可以找到实验评估的图表和讨论。

依赖关系

~0.4–1MB
~23K SLoC