绘制bloom filter的概率曲线

参考:https://www.cnblogs.com/zhxshseu/p/5289871.html

字母 含义
m bit数组的宽度(bit数)
n 待测key的数量
k 使用的hash函数的个数
f False Positive的比率

Bloom Filter公式:


f = (1 – e-kn/m)k

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import math

e = math.exp(1)

plt.ylabel('error probability')
plt.xlabel('number of hashfunc')

k=range(1,9,1)
for i in range(1,31,5):
    f=list(map(lambda k:(1-e**(-k*i/100))**k,k))
    plt.plot(k,f,'-o',linewidth=1,markersize=3)
# 设置线标
plt.legend(list(map(lambda x:f'{x}%',range(1,31,5))))
plt.show()
效果图,%为n/m值
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容