我有 N < 2^n 随机生成的 n 位数字存储在一个文件中,其查找成本很高。给定一个数字 Y,我必须在文件中搜索一个最多为 k hamming dist 的数字。来自 Y。现在这需要 C(n 1) + C(n 2) + C(n 3)...+C(n,k) 最坏情况查找,这在我的情况下是不可行的。我尝试在内存中的每个位位置存储 1 和 0 的分布,并优先考虑我的查找。因此,我存储了位 i 为 0/1 的概率:
Pr(bi=0), Pr(bi=1) 用于从 0 到 n-1 的所有 i。
但这并没有太大帮助,因为 N 太大并且在每个位位置几乎相等的 1/0 分布。有没有办法可以更有效地完成这件事。现在,您可以假设 n=32,N = 2^24。