zoukankan      html  css  js  c++  java
  • 6空间限制-布隆过滤器

    题目是一个占用64B的URL,查找其是否存在在100亿个黑名单网页中。允许万分之一的判断失误率,空间限制为30GB。

    布隆过滤器常用的场景是黑名单系统、垃圾邮件过滤系统、爬虫的网址判重系统,并且对失误率有一定的容忍度,但是对空间的要求比较严格。

    哈希函数(散列函数):输入域是非常大的范围,但是输出域是固定的范围,假设为S,并具有以下的性质:

    1. 典型的哈希函数都有无限的输入值域
    2. 当给哈希函数传入相同的输入值时,返回值一样
    3. 当给哈希函数传入不同的输入值时,返回值有可能不一样
    4. 最重要的性质是很多不同的输入值所得到的返回值会均匀的分布在S上

    其中第4点是判断一个哈希函数优劣的关键(aaa1,aaa2,aaa3比较相似的,但是计算后分布比较大)。一些优秀的哈希函数的实现:MD5、SHA1。

    布隆过滤器: 长度为m的bit类型数组,bit的状态是0或者1,有k个哈希函数,这些函数的输出域都等于或者大于m,URL经过k个哈希函数进行计算,取余后的结果在数组上将其涂黑,最后得到一个部分被涂黑的bitmap数组,检查的时候就是对这个URL进行k个哈希函数的计算,每一个值都在这个数组上进行比较,都为黑,那就是大概率是黑名单的URL,但是有及小的误差率,可以用改善哈希函数或者添加到白名单的方式进行避免。

    根据样本个数n,失误率p,样本大小64B

  • 相关阅读:
    js object 常用方法总结
    深入研究js中的位运算及用法
    input事件中文触发多次问题研究
    景点地图开发实战
    炫酷线条动画--svg
    转:绝对干货--WordPress自定义查询wp_query所有参数详细注释
    canvas实例 ---- 制作简易迷宫(一)
    炫酷弹窗效果制作
    js排序算法总结—冒泡,快速,选择,插入,希尔,归并
    js 实现 promise
  • 原文地址:https://www.cnblogs.com/cambra/p/13859743.html
Copyright © 2011-2022 走看看