可以看c++实现: https://github.com/mavam/libbf

python实现:https://github.com/jaybaird/python-bloomfilter

转自:http://www.cnblogs.com/dolphin0520/archive/2012/11/10/2755089.html

/*布隆过滤器简易版本 2012.11.10*/#include<iostream>
#include<bitset>
#include<string>
#define MAX 2<<24
using namespace std;bitset<MAX> bloomSet;           //简化了由n和p生成m的过程 int seeds[7]={3, 7, 11, 13, 31, 37, 61};     //使用7个hash函数 int getHashValue(string str,int n)           //计算Hash值
{int result=0;int i;for(i=0;i<str.size();i++){result=seeds[n]*result+(int)str[i];if(result > 2<<24)result%=2<<24;}return result;
}bool isInBloomSet(string str)                //判断是否在布隆过滤器中
{int i;for(i=0;i<7;i++){int hash=getHashValue(str,i);if(bloomSet[hash]==0)return false;}return true;
}void addToBloomSet(string str)               //添加元素到布隆过滤器
{int i;for(i=0;i<7;i++){int hash=getHashValue(str,i);bloomSet.set(hash,1);}
}void initBloomSet()                         //初始化布隆过滤器
{addToBloomSet("http://www.baidu.com");addToBloomSet("http://www.cnblogs.com");addToBloomSet("http://www.google.com");
}int main(int argc, char *argv[])
{int n;initBloomSet();while(scanf("%d",&n)==1){string str;while(n--){cin>>str;if(isInBloomSet(str))cout<<"yes"<<endl;elsecout<<"no"<<endl;}}return 0;
}

转载于:https://www.cnblogs.com/bonelee/p/6215386.html

布隆过滤器简易版本实现相关推荐

  1. 简单布隆过滤器设计方案

    假如有1亿个不重复的正整数(大致范围已知),但是只有1G的内存可用,如何判断该范围内的某个数是否出现在这1亿个数中?最常用的处理办法是利用位图,1*108/1024*1024*8=11.9,也只需要申 ...

  2. ubuntu16.04安装,使用redis布隆过滤器示例

    简言 1. 环境:ubuntu16.04,redis版本:5.0.7,布隆过滤器实现版本:RedisBloom1.1.1 2. 默认情况,下载安装redis时是不带布隆过滤器功能的,它是以插件的形式提 ...

  3. 布隆过滤器的简易实现

    布隆过滤器的原理再此就不重复说了,网上有很多种陈述的,再此就利用BitSet给出一个布隆过滤器的简易实现, 看不懂的欢迎私信我 import java.util.BitSet;/*** @author ...

  4. C++拾取——Linux下实测布隆过滤器(Bloom filter)和unordered_multiset查询效率

    布隆过滤器是一种判定元素是否存在于集合中的方法.其基本原理是使用哈希方法将数据映射到一个很长的向量上.在维基百科上,它被称为"空间效率和查询时间都远远超过一般的算法"的方法.由于它 ...

  5. Redis亿级数据过滤和布隆过滤器

    来自:我没有三颗心脏 一.布隆过滤器简介 上一次 我们学会了使用 HyperLogLog 来对大数据进行一个估算,它非常有价值,可以解决很多精确度不高的统计需求.但是如果我们想知道某一个值是不是已经在 ...

  6. Redis 高级主题之布隆过滤器(BloomFilter)

    最近计划准备整理几篇关于Reids高级主题的博文,本文整理的是关于布隆过滤器在Redis中如何应用,先来一张思维导图浏览全文. 1. 认识BloomFilter 1.1 原理 布隆过滤器,英文叫Blo ...

  7. Redis布隆过滤器

    正文 场景 在项目开发中,我们经常会遇到去重问题.比如:判断一个人有没有浏览过一篇文章,判断一个人当天是否登录过某个系统,判断一个ip是否发过一个请求,等等. 比较容易想到的是使用set来实现这个功能 ...

  8. hbase建表,删表,修改,查询(get,scan,布隆过滤器)

    建表 直接建表: create '表名','列族名' 如果之后想加入新的列族: alter '表名','列族名' 补充: alter '表名',{NAME='列族名',属性1=>属性值 1,属性 ...

  9. HBase的布隆过滤器详解

    HBase的布隆过滤器详解 1.布隆过滤器的简单介绍 2.布隆过滤器的原理分析 2.1 哈希表存在的问题 2.2 布隆过滤器的原理 2.2.1 原理详解 2.2.2 布隆过滤器失误率的调节 2.2.3 ...

最新文章

  1. c++关于map的find和count的使用
  2. ML之分类预测之LARS:利用回归工具将二分类转为回归问题并采用LARS算法构建分类器
  3. Android 热补丁动态修复框架小结
  4. 数据库表命名 单数复数_数据是还是数据是? “数据”一词是单数还是复数?
  5. 华为鸿蒙系统深度体验报告,堪比苹果IOS的存在!
  6. 箴言录2014年4月19日
  7. Item 22: 当使用Pimpl机制时,在实现文件中给出特殊成员函数的实现
  8. 【TSP】基于matlab GUI混合粒子群算法求解旅行商问题【含Matlab源码 925期】
  9. 服务器远程ghost,Ghost win7系统64位远程桌面连接教程
  10. IE兼容性问题解决方案
  11. ntfs是什么硬盘?ntfs硬盘如何在苹果电脑使用
  12. arcgis字段求和_arcgis计算命令
  13. 17、springcloud整合lettuce使用redis
  14. Visual Paradigm创建UML的流程和一点实用技巧
  15. linux est 时间,Linux 时间标准简介
  16. maxEms和maxLength的区别以及maxEms不起作用的问题
  17. JDBC - MySQL
  18. 女研究生因压力大欲跳海轻生 民警跳入冰冷海水中救人
  19. 以太网和PPPOE网络下MTU和MSS的关系
  20. 最近在逛知乎的时候发现一个有趣的问题:公司规定所有接口都用 post 请求,这是为什么?

热门文章

  1. Excel数组公式从入门到精通之入门篇
  2. 西门子阀门定位器单双作用执行机构的区分
  3. 关于H3C路由器web远程管理关闭的问题
  4. Unity Github 项目收集
  5. linux搭建ldap服务器详细步骤,linux环境搭建ldap服务器
  6. client-go源码学习(二):Reflector、DeltaFIFO
  7. Delphi中ActionList组件在菜单编制中的应用
  8. FineReport学习(二)——各种报表的制作
  9. SOLIDWORKS和CATIA两款三维设计软件区别
  10. 头条算法题:产品经理,程序员任务调度、用户喜好值算法等等