当前位置: 首页 > news >正文

Python Bloom过滤器实现

Bloom过滤器概率集合。可能误判但不会错判不存在。位数组+k个哈希函数。不可删除(Counting Bloom可删除)。mmap位数组支持持久化。空间效率高。应用:缓存穿透、URL去重、垃圾邮件过滤。

import mmap, hashlib, math

class BloomFilter:
def __init__(self, n, fpr=0.01):
self.n = n
self.p = fpr
self.m = int(-n * math.log(fpr) / (math.log(2) ** 2))
self.k = int(self.m / n * math.log(2))
self.bit_array = bytearray(self.m)

def _hashes(self, item):
result = []
for i in range(self.k):
h = hashlib.md5(f"{i}:{item}".encode()).hexdigest()
result.append(int(h, 16) % self.m)
return result

def add(self, item):
for pos in self._hashes(item):
byte_idx = pos // 8
bit_idx = pos % 8
self.bit_array[byte_idx] |= (1 << bit_idx)

def __contains__(self, item):
for pos in self._hashes(item):
byte_idx = pos // 8
bit_idx = pos % 8
if not (self.bit_array[byte_idx] & (1 << bit_idx)):
return False
return True

bf = BloomFilter(10000)
bf.add("test")
print("test" in bf) # True
print("other" in bf) # 可能True(误判)或False

http://www.jsqmd.com/news/1021064/

相关文章:

  • REFramework深度兼容性调优:构建稳定RE引擎游戏模组平台的最佳实践
  • 深度解析:TrollInstallerX 内核漏洞利用架构与iOS权限突破技术
  • Matplotlib直方图核心原理与生产级配置指南
  • 从二极管到MOSFET:深入解析输入防倒灌电路的设计原理与工程实践
  • 2026年比较好的厦门成人口才培训/厦门口才培训/福州上台演讲口才培训实力品牌公司 - 行业平台推荐
  • XZ4089充电电压4.2V 充电电流0.1A-2.0A可编程 降压同步开关型单节锂电池充电管理芯片
  • Google Sheets图表实战:从Fortune 500数据看可视化底层逻辑
  • Silvaco TCAD电极定义报错?手把手教你排查ATHENA/ATLAS中的电极定位问题
  • RAG效果瓶颈的真相:知识图谱的价值在于向量索引,而非图结构
  • 数据工程师必学:Linux用户加入docker组的原理与实操
  • 2026发票PDF合并保姆级指南:免费工具推荐+手把手教程
  • 万亿参数大模型如何实现从‘能回答’到‘能交付’的跃迁
  • 六子棋游戏开发全攻略:从规则到AI实现
  • AUC-ROC:二分类模型排序能力与业务决策的黄金标尺
  • Gemini 3.1核心升级:时序对齐、指令锚定与推理压缩
  • 抓包,逆向API,中转站到底是啥?大模型 API 中转站的底层架构与实现原理
  • 2026年西南地区租赁圆柱钢模板厂家怎么选?5家实力供应商实测参考 - 优质品牌商家
  • LLM护栏实战指南:四层防御架构与可复用防护模块
  • 172号卡推荐码全解析:从机制原理到实战避坑指南
  • Java 权限修饰符 private、默认(不写)、protected、public
  • 无人机桨叶安装与起飞原理全解析:从空气动力学到飞控协同
  • 嵌入式系统看门狗与Flash操作实战:WPR1516 MCU的可靠性设计
  • 深度解析:凯撒旅游创始时间和总部在哪里? - 品牌2026
  • CEI-28G-VSR超短距高速接口:28Gbps板级互联的设计挑战与实战指南
  • 终极D2DX宽屏补丁:3步让暗黑破坏神2在现代PC上完美运行
  • 2026年弱电数据中心建设公司怎么选?行业深度分析与实践指南 - 优质品牌商家
  • 正激式开关电源设计实战:从磁复位原理到PCB布局全解析
  • Beyond Compare破解版风险剖析与合法替代方案全指南
  • 2026年西南地区抗裂砂浆厂家筛选指南!实地走访与供应链深度解析 - 优质品牌商家
  • KeePassXC-Browser技术实现:构建安全的密码管理器浏览器扩展