pandas 绘制bloomfilter 错误冲突曲线
利用pandas绘制bloomfilter的概率曲线
字母 | 含义 |
---|---|
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()