绘制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()
绘制bloom filter的概率曲线_第1张图片
效果图,%为n/m值

你可能感兴趣的:(绘制bloom filter的概率曲线)