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

  • 相关阅读:
    一个主板上连接两个都有引导的盘
    pytorch查看模型weight与grad
    linux终端窗口字体缩放快捷键
    vim选中多行缩进(python多行缩进)与删除多行前面的空格
    python import 包的路径以及相对路径加载的问题
    pycharm中添加PATH变量
    Atom选中多行操作
    php扩展 swoole的安装与使用
    12121212
    linux系统下清理所有Redis缓存
  • 原文地址:https://www.cnblogs.com/cambra/p/13859743.html
Copyright © 2011-2022 走看看