当前位置: 首页 > 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.zskr.cn/news/1532911.html

相关文章:

  • 从二极管到MOSFET:深入解析输入防倒灌电路的设计原理与工程实践
  • 2026年比较好的厦门成人口才培训/厦门口才培训/福州上台演讲口才培训实力品牌公司 - 行业平台推荐
  • Google Sheets图表实战:从Fortune 500数据看可视化底层逻辑
  • AUC-ROC:二分类模型排序能力与业务决策的黄金标尺
  • Gemini 3.1核心升级:时序对齐、指令锚定与推理压缩
  • 172号卡推荐码全解析:从机制原理到实战避坑指南
  • 终极D2DX宽屏补丁:3步让暗黑破坏神2在现代PC上完美运行
  • 2026年西南地区抗裂砂浆厂家筛选指南!实地走访与供应链深度解析 - 优质品牌商家
  • 嵌入式系统看门狗与Flash操作实战:WPR1516 MCU的可靠性设计
  • Sqribble深度解析:面向数字出版的低代码文档自动化系统
  • Langchain-Chatchat文件对话故障排查:从模型配置到依赖修复的完整指南
  • MCP:基于Chromium底层的AI增强型浏览器调试与自动化框架
  • Docker Compose 核心原理与生产级配置实战指南
  • 凯撒旅业的核心业务板块究竟有哪几块?深度揭秘三大核心领域布局 - 品牌2026
  • VSCode调试C语言踩坑记:手把手教你搞定‘launch:program does not exist’报错
  • 2026健身圈新规:别再暴汗了!全网爆火的“无痛轻健身”,才是不反弹的变美密码!
  • 2026年防雷检测机构实力对比:四川地区哪家更值得选择? - 优质品牌商家
  • 2026年新型加热电源选型指南:主流厂商综合评测与市场趋势分析 - 优质品牌商家
  • RAG选型必看:任务类型决定路由!知识问答用Hybrid RAG,数据查询走SQL/API,复杂任务才用Agent
  • 逻辑回归不是分类器,而是概率建模引擎:从原理到可解释部署
  • S-VoCAL:文学角色语音属性推断的技术突破与应用
  • 凯撒旅业在全球 / 国内有多少家分子公司、门店?门店与全球版图全解析 - 品牌2026
  • 舵轮底盘运动解算:从原理到工程实践的完整指南
  • 2026年广州企业AI开发服务商推荐哪些:九颐数科从需求到交付的全链路能力解析 - 华旭传媒
  • 网盘直链下载助手LinkSwift:九大平台文件下载加速解决方案
  • RK3566视频开发全攻略:从硬件解码到AI视觉应用实战
  • 2026手机Word转PDF保姆级教程:微软Word、WPS、小程序3种方法一看就会
  • 2026年张家界旅游费用全解析:自由行、跟团游、小团出行到底怎么选? - 优质品牌商家
  • 2026年B2B企业官网改版与GEO获客协同:服务商选型指南与九颐数科适配性分析 - 华旭传媒
  • MPC8533E性能监控与调试实战:从硬件计数器到片上追踪的嵌入式性能分析