长沙本地网站推广,湖北省和建设厅网站首页,洛阳网站制作,wordpress知更鸟修改Bloom-Filter算法 其实可以看作 bit-map 的一种扩展。 它把已存在的元素通过多个hash 函数映射到一个 bit 序列#xff0c;对于每一个元素根据hash函数的结果把相应的 位置置一#xff08;这个bit序列通常很长#xff0c;但是比起记住所有元素它占用的空间是小的#xff09… Bloom-Filter算法 其实可以看作 bit-map 的一种扩展。 它把已存在的元素通过多个hash 函数映射到一个 bit 序列对于每一个元素根据hash函数的结果把相应的 位置置一这个bit序列通常很长但是比起记住所有元素它占用的空间是小的。 在判断一个元素时候已存在的时候它会把这个元素的多个hash结果对应到bit序列中查看如果已经全部置为一那么说明该元素已经存在。 一个Bloom Filter有以下参数 m bit数组的宽度bit数 n 加入其中的key的数量 k 使用的hash函数的个数 f False Positive的比率 假阳性为了把错误率控制在 f共有 n 个元素的集合作 bloom filter 其他参数可以由以下公式来定值 m nlg(1/f)*lge (其中 lg 表示以2为底的对数) k - ln(f) / ln(2) 另外对于一个元素非常多的集合要进行 Bloom Filter 操作必须构造一个返回值范围很大的 hash 函数。可以用 md5 算法生成十六进制的hash值然后转成十进制 import hashlibmhashlib.md5()
m.update(123123123123123123)
print int(m.hexdigest(), base16) 详见http://blog.csdn.net/hguisu/article/details/7866173 转载于:https://www.cnblogs.com/rav009/p/5131107.html