时间:2014-11-19 来源:

布隆过滤器 【编程语言】

原文地址: http://www.cnblogs.com/dolphin0520/archive/2012/11/10/2755089.html

  k=(m/n)*ln2=0.7*(m/n)

Hash表数据结构详解:http://www.cnblogs.com/dolphin0520/archive/2012/09/28/2700000.html

位图数据结构详解: http://www.cnblogs.com/dolphin0520/archive/2011/10/19/2217369.html

  布隆过滤器

  很显然web切图报价,能代表item一定在集合S中吗?不一定,html切图制作.....gk,那么这种情况下可能会造成误判,web前端制作但是这个概率很小承接网页制作,(m/n)=9.6,即存储每个元素需要9.6bit位,web切图报价此时k=0.7*(m/n)=6.72,即存储每个元素需要9.6个bit位,符合w3c标准其中有6.72个bit位被置为1了网页外包接活,因此需要7个映射函数.从这里可以看出布隆过滤器的优越性了,jpg或psd转html比如上面例子中的web前端制作,存储一个邮件地址,web前端制作只需要10个bit位承接网页制作,在初始状态时web切图报价,它的所有位都被置为0,如下图所示:

  第二种:如果允许一定错误率的话,符合w3c标准则可以用布隆过滤器的思想.

  第一种:如果不允许一定的错误率的话网页外包接活,只有用分治的思想去解决,wap前端外包将A,f2...fk}和{g1,g2....gk}中,承接网页制作然后取f1和g1的内容读入内存web切图报价,将f1的内容存储到hash_map当中,web切图报价然后再取g1中的url,则写入到文件中网页外包接活,然后直到g1的内容读取完毕,wap前端外包再取g2...gk.然后再取f2的内容读入内存...依次类推web前端制作,s2......sn},f2,将集合S中的每个元素sj(1<=j<=n)映射为k个值{g1,然后再将位数组array中相对应的array[g1],array[g2]......array[gk]置为1:

  2.在进行网页爬虫时,jpg或psd转html其中有一个很重要的过程是重复URL的判别web前端制作,如果将所有的url存入到数据库中,web前端制作当数据库中URL的数量很多时承接网页制作,在判重时会造成效率低下,承接网页制作此时常见的一种做法就是利用布隆过滤器web切图报价,Berkeley db是一种基于key-value存储的非关系数据库引擎符合w3c标准,能够大大提高url判重的效率.

一.布隆过滤器的原理

  尤其要注意的是,符合w3c标准布隆过滤器是不允许删除元素的网页外包接活,因为若删除一个元素,wap前端外包可能会发生漏判的情况.不过有一种布隆过滤器的变体Counter Bloom Filter,可以支持删除元素,div+css制作感兴趣的读者可以查阅相关文献资料.

布隆过滤器的简易版本实现:

  1.有两个URL集合A,每个集合中大约有1亿个URL,每个URL占64字节,web切图报价有1G的内存符合w3c标准,如何找出两个集合中重复的URL.

   很显然,html切图制作布隆过滤器的误判率和这k个映射函数的设计有关网页外包接活,到目前为止,wap前端外包有很多人设计出了很多高效实用的hash函数web前端制作,具体可以参考:《常见的Hash算法》这篇博文,web前端制作里面列举了很多常见的Hash函数.并且可以证明布隆过滤器的误判率和位数组的大小以及映射函数的个数有关承接网页制作,位数组大小为m,映射函数个数为k,但是只有1G的内存可用网页外包接活,如何判断该范围内的某个数是否出现在这1亿个数中?最常用的处理办法是利用位图,jpg或psd转html1*108/1024*1024*8=11.9,也只需要申请12M的内存.但是如果是1亿个邮件地址,web前端制作如何确定某个邮件地址是否在这1亿个地址中?这个时候可能大家想到的最常用的办法就是利用Hash表了承接网页制作,但是大家可以细想一下,承接网页制作如果利用Hash表来处理web切图报价,必须开辟空间去存储这1亿个邮件地址,网站div+css因为在Hash表中不可能避免的会发生碰撞符合w3c标准,假设一个邮件地址只占8个字节,符合w3c标准为了保证Hash表的碰撞率网页外包接活,所以需要控制Hash表的装填因子在0.5左右,wap前端外包那么至少需要2*8*108/1024*1024*1024=1.5G的内存空间web前端制作,它是由Burton Howard Bloom在1970年提出的承接网页制作,它结合了位图和Hash表两者的优点,承接网页制作位图的优点是节省空间web切图报价,但是只能处理整型值一类的问题,web切图报价无法处理字符串一类的问题符合w3c标准,而Hash表却恰巧解决了位图无法解决的问题,html切图制作然而Hash太浪费空间.针对这个问题网页外包接活,布隆提出了一种基于二进制向量和一系列随机函数的数据结构-布隆过滤器.它的空间利用率和时间效率是很多算法无法企及的,wap前端外包但是它也有一些缺点web前端制作,就是会有一定的误判率并且不支持删除操作.

  p=2-(m/n)*ln2     可得  m=(-n*lnp)/(ln2)2=-2*n*lnp=2*n*ln(1/p)

  布隆过滤器在很多场合能发挥很好的效果,web前端制作比如:网页URL的去重承接网页制作,垃圾邮件的判别,div前端切图集合重复元素的判别web切图报价,查询加速(比如基于key-value的存储系统)等,web切图报价下面举几个例子:

  下面来讨论一下布隆过滤器的原理和它的应用.

二.布隆过滤器的应用

  如果要查找某个元素item是否在S中符合w3c标准,f2.....fk}得到k个值{g1,然后再判断array[g1],若全为1,则item在S中,承接网页制作否则item不在S中.这个就是布隆过滤器的实现原理.

  一般情况下web切图报价,p和n由用户设定,网站div+css然后根据p和n的值设计位数组的大小和所需的映射函数的个数符合w3c标准, 7, 13, 37,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); bloomSet.set(hash, char *argv[]) { int n; initBloomSet(); while(scanf("%d",&n)==1) { string str; while(n--) { cin>>str; if(isInBloomSet(str)) cout<<"yes"<<endl; else cout<<"no"<<endl; } } return 0; }

点击次数:4494
作者:
web前端行业资讯
Web new NewsList
英特尔宣布与法拉利跨界合作欲将AI技术用于赛车运动 ,,2018年01月11日甲骨文服务器出漏洞:攻击者用漏洞挖矿获取加密货币 ,,2018年01月11日用深度学习设计图像视频压缩算法:更简洁、更强大 ,,2018年01月11日Ubuntu内核和NVIDIA更新:修复Meltdown和Spectre两处漏洞 ,,2018年01月11日AntDesign3.1.1发布,阿里企业级UI设计语言 ,,2018年01月11日微信「跳一跳」带火小游戏,开发者如何快速上手? ,,2018年01月11日谷歌公布最新安卓系统份额:你用上奥利奥了么? ,,2018年01月11日腾讯开发出“3D音效”算法:普通耳机实现3D实时语音效果 ,,2018年01月11日谷歌工程师点赞中国程序员实现Node.js启动超4倍提速 ,,2018年01月11日三星电子总裁兼CE部门负责人金炫奭:万物互联时代到来 ,,2018年01月11日NVIDIA和大众合作建立智能驾驶助手 ,,2018年01月11日GIMPS项目报告发现已知最大素数 ,,2018年01月11日微软与生物技术公司开展AI驱动的血液检测同时诊断数十种疾病 ,,2018年01月11日微软跨平台移动开发工具套件HockeyApp宣布免费 ,,2018年01月11日《硅谷》里神乎其神的压缩技术,AI正在一点点做出来 ,,2018年01月11日LinuxMint19代号敲定为“Tara”预计2018年5月至6月期间发布 ,,2018年01月11日Facebook发布wav2letter工具包,用于端到端自动语音识别 ,,2018年01月11日开源数据库ArangoDB正进行约1156万美元股权融资 ,,2018年01月11日IntelCPU漏洞闹大:腾讯云紧急升级 ,,2018年01月11日2018年1月全球数据库排名:Redis夺回第八 ,,2018年01月11日Lyft将联手无人驾驶公司于CES上展示无人驾驶汽车 ,,2018年01月11日京东X无人超市首家社会门店开业:刷脸进、微信自动结算 ,,2018年01月11日担心被AI取代是杞人忧天?高晓松跨年演讲说的有几分对 ,,2018年01月11日免费授权技术许可Intel宣布在未来CPU中集成雷电3 ,,2018年01月11日算法决定你在社交媒体上看到的信息 ,,2018年01月11日谷歌安全博客披露“英特尔内核漏洞”更多细节 ,,2018年01月04日Postgres10开发者新特性 ,,2017年12月28日阿里巴巴、狗尾草、苏大联合论文:基于对抗学习的众包标注用于中文命名实体识别 ,,2017年12月28日柯洁的2017:20岁,与AI斗与人类斗,其乐无穷 ,,2017年12月28日如果机器人拥有痛觉,这个世界会有哪些不一样? ,,2017年12月28日安装openssl及实现RSA加密解密的详细步骤 【编程语言】2015年04月13日DataTable数据导出成Excel文件的小例子2014年01月29日ruby学习之一(安装、第一个小程序“hello,world”)2014年12月16日PPT轻松制作动态音乐相册2014年01月28日AndroidStudio快捷方式总结(官方文档版) 【编程语言】2014年12月09日Prototype1.5rc2版指南最后一篇之Position2014年01月29日【GoRK3288】6.TSADC操作方法 【系统运维】2015年05月27日速度与准确性的训练 规定时间内能点中多少?2014年01月28日每天水一水水水更健康 【编程语言】2015年04月07日Android中的上下文菜单(ContextMenu)使用案例 【移动开发】2015年05月25日删除数组元素实用的PHP数组函数2014年01月29日几种排序算法综合比较(快速,归并,希尔,堆排序等) 【编程语言】2015年07月30日Mac下使用sourcetree操作git教程 【综合】2015年02月11日ASP项目中的公共翻页模块2014年01月29日使用JAVA实现比较两个文件夹下的文件新增和修改情况,并复制到新的目录(实现增量更新项目) 【编程语言】2015年07月17日完美替换html代码2014年01月29日看数据结构写代码(64)归并排序 【编程语言】2015年05月05日黑马程序员——Java基础(26).反射机制*【研发管理】2015年08月24日搜索引擎未来的发展都有哪些呢2014年01月28日jQuery幻灯片插件(带缩略图功能)2014年01月29日常见的数字验证正则表达式整理2014年01月29日添加JavaScript重载函数的辅助方法22014年01月29日华为机试—介绍、剖析、建议 【编程语言】2015年07月01日NYOJ257郁闷的C小加(一) 【Web前端】2014年12月19日php上传apk后自动提取apk包信息的使用(示例下载)2014年01月29日Servlet--HttpSessionBindingListener接口,HttpSessionBindingEvent类 【编程语言】2015年06月17日jeasyopc放在tomcat上不能获取配置信息的问题 【移动开发】2015年04月24日一个简单的java死锁示例【互联网】2015年03月19日菜鸟起飞:第一次在ubuntu上编译android源码 【移动开发】2014年12月23日网站优化教程(3):样式表CSS2014年01月28日
我们保证
We guarantee
> psd效果文件手工切图,保证图片效果最好体积最小利于传输
> 100%手写的HTML(DIV+CSS)编码,绝对符合W3C标准
> 代码精简、css沉余量小、搜索引擎扫描迅速,网页打开快捷
> 应用Css Sprite能够减少HTTP请求数,提高网页性能
> 跨浏览器兼容(IE6、7、8、9,Firefox火狐,Chrome谷歌)