java笔试题算法-go-hll:与其他语言很好地兼容的HLL的Go实现

时间:2024-06-22 20:40:23
【文件属性】:

文件名称:java笔试题算法-go-hll:与其他语言很好地兼容的HLL的Go实现

文件大小:6.6MB

文件格式:ZIP

更新时间:2024-06-22 20:40:23

系统开源

java笔试题算法去吧 它的 Go 实现与 . 概述 HyperLogLog (HLL) 是一种固定大小的类似集合的结构,用于具有可调精度的不同值计数。 例如,在 1280 字节中,HLL 可以估计数百亿个不同值的数量,误差只有几个百分点。 除了 中提出的算法之外,该实现还得到了增强,以提高其准确性和内存使用,而不会牺牲太多速度。 动机 虽然 Go 中有一些现有的 HLL 实现,但它们都没有实现 AK 存储规范。 统一的存储格式对于在多语言环境中读写 HLL 很有用。 在 Segment,我们的大部分运行时代码都是用 Go 编写的,但我们经常将数据持久化到 PostgreSQL 以进行长期存储。 Postgres HLL 插件相当普遍——它可用于独立服务器、AWS RDS、AWS Aurora 和 CitusDB。 可以在 . 散列 一个好的散列算法对于实现 HLL 执行其计算所需的伪随机性至关重要。 建议使用 的 64 位变体。 如果使用种子,它对于给定 HLL 的所有输入必须是恒定的。 此外,如果要合并该 HLL,则必须对另一个 HLL 的所有输入使用相同的种子。 有关为什么 Mu


【文件预览】:
go-hll-master
----integration_test.go(5KB)
----.circleci()
--------config.yml(838B)
----util_test.go(1KB)
----.gitignore(11B)
----hll_test.go(14KB)
----dense_test.go(5KB)
----explicit.go(2KB)
----License.md(1KB)
----settings.go(10KB)
----hll.go(17KB)
----probabalistic_test.go(4KB)
----go.mod(196B)
----explicit_test.go(4KB)
----sparse.go(2KB)
----Readme.md(4KB)
----storage.go(2KB)
----settings_test.go(3KB)
----package.go(160B)
----util.go(2KB)
----dense.go(9KB)
----sparse_test.go(9KB)
----go.sum(682B)
----Makefile(67B)
----integration_tests()
--------log2m-11_regwidth-5()
--------log2m-10_regwidth-4()
--------log2m-12_regwidth-6()

网友评论