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

  • 相关阅读:
    网络流二十四题之魔术球问题
    网络流二十四题之P2764 最小路径覆盖问题
    网络二十四题 之 P2756 飞行员配对方案问题
    网络流 之 dinic算法
    网络流 之 增广路
    中南
    2249: Altruistic Amphibians 01背包的应用 + lh的简单图论 图转树求lca
    今日训练 搜索
    AD-logon workstation
    Centos7-docker安装
  • 原文地址:https://www.cnblogs.com/cambra/p/13859743.html
Copyright © 2011-2022 走看看