gpt4 book ai didi

algorithm - 对 40 亿个整数使用 10 MB 的内存(关于找到优化的 block 大小)

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:37:06 26 4
gpt4 key购买 nike

<分区>

问题是,给定一个包含 40 亿个整数的输入文件,提供一种算法来生成一个不包含在文件中的整数,假设只有 10 MB 的内存。

搜索了一些解决方案,其中一个是将整数存储到位向量 block 中(每个 block 代表40亿范围内的特定范围的整数, block 中的每个位代表一个整数),并使用另一个计数器每个 block ,以计算每个 block 中整数的数量。因此,如果整数的数量小于整数的 block 容量,则扫描 block 的位向量以查找缺少的整数。

我对这个解决方案感到困惑的是,当 block 计数器数组占用与位向量相同的内存时,它提到了最佳的最小占用空间。我很困惑为什么在这种情况下它是最佳的最小占用空间?

这是我提到的计算细节,

Let N = 2^32.
counters (bytes): blocks * 4
bit vector (bytes): (N / blocks) / 8
blocks * 4 = (N / blocks) / 8
blocks^2 = N / 32
blocks = sqrt(N/2)/4

提前致谢,林

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com