当前位置: 首页 > news >正文

北京丰台做网站/有什么平台可以推广信息

北京丰台做网站,有什么平台可以推广信息,凡科做的手机网站可以导出来,网站建设工程设计图(问:亿级ip的过滤) 哈希 hash 原理 Hash (哈希,或者散列)函数在计算机领域,尤其是数据快速查找领域,加密领域用的极广。 其作用是将一个大的数据集映射到一个小的数据集上面&#xf…

(问:亿级ip的过滤)

哈希 hash

原理

Hash (哈希,或者散列)函数在计算机领域,尤其是数据快速查找领域,加密领域用的极广。

其作用是将一个大的数据集映射到一个小的数据集上面(这些小的数据集叫做哈希值,或者散列值)

一个应用是Hash table(散列表,也叫哈希表),是根据哈希值 (Key value) 而直接进行访问的数据结构。也就是说,它通过把哈希值映射到表中一个位置来访问记录,以加快查找的速度。下面是一个典型的 hash 函数 / 表示意图:

 

哈希函数有以下两个特点:

  • 如果两个散列值是不相同的(根据同一函数),那么这两个散列值的原始输入也是不相同的。
  • 散列函数的输入和输出不是唯一对应关系的,如果两个散列值相同,两个输入值很可能是相同的。但也可能不同,这种情况称为 “散列碰撞”(或者 “散列冲突”)。

缺点: 引用吴军博士的《数学之美》中所言,哈希表的空间效率还是不够高。如果用哈希表存储一亿个垃圾邮件地址,每个email地址 对应 8bytes, 而哈希表的存储效率一般只有50%,因此一个email地址需要占用16bytes. 因此一亿个email地址占用1.6GB,如果存储几十亿个email address则需要上百GB的内存。除非是超级计算机,一般的服务器是无法存储的。

所以要引入下面的 Bloom Filter。

布隆过滤器 Bloom Filter

它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。

原理

如果想判断一个元素是不是在一个集合里一般想到的是将集合中所有元素保存起来,然后通过比较确定。链表、树、散列表(又叫哈希表,Hash table)等等数据结构都是这种思路。但是随着集合中元素的增加,我们需要的存储空间越来越大。同时检索速度也越来越慢。

Bloom Filter 是一种空间效率很高的随机数据结构,Bloom filter 可以看做是对 bit-map 的扩展, 它的原理是:

当一个元素被加入集合时,通过 KHash 函数将这个元素映射成一个位阵列(Bit[bɪt] array位数组)中的 K 个点,把它们置为 1。检索时,我们只要看看这些点是不是都是 1 就(大约)知道集合中有没有它了

  • 如果这些点有任何一个 0,则被检索元素一定不在
  • 如果都是 1,则被检索元素很可能在。

优点

It tells us that the element either definitely is not in the set or may be in the set.

它的优点是空间效率查询时间都远远超过一般的算法,布隆过滤器存储空间和插入 / 查询时间都是常数O(k)。另外, 散列函数相互之间没有关系,方便由硬件并行实现。布隆过滤器不需要存储元素本身,在某些对保密要求非常严格的场合有优势。

缺点

但是布隆过滤器的缺点和优点一样明显。

1.误算率是其中之一(本来不在算出在)。随着存入的元素数量增加,误算率随之增加。但是如果元素数量太少,则使用散列表足矣。

(误判补救方法是:再建立一个小的白名单,存储那些可能被误判的信息。)

2.另外,一般情况下不能从布隆过滤器中删除元素. 我们很容易想到把位数组变成整数数组,每插入一个元素相应的计数器加 1, 这样删除元素时将计数器减掉就可以了。然而要保证安全地删除元素并非如此简单。首先我们必须保证删除的元素的确在布隆过滤器里面.。(数据量太大并没有存添加了哪些元素) 这一点单凭这个过滤器是无法保证的。另外计数器回绕也会造成问题.

Example

可以快速且空间效率高的判断一个元素是否属于一个集合;用来实现数据字典,或者集合求交集。

如: Google chrome 浏览器使用bloom filter识别恶意链接(能够用较少的存储空间表示较大的数据集合,简单的想就是把每一个URL都可以映射成为一个bit)
得多,并且误判率在万分之一以下。
又如: 检测垃圾邮件

假定我们存储一亿个电子邮件地址,我们先建立一个十六亿二进制(比特),即两亿字节的向量,然后将这十六亿个二进制全部设置为零。
对于每一个电子邮件地址 X,我们用八个不同的随机数产生器(F1,F2, ...,F8) 产生八个信息指纹(f1, f2, ..., f8)。
再用一个随机数产生器 G 把这八个信息指纹映射到 1 到十六亿中的八个自然数 g1, g2, ...,g8。现在我们把这八个位置的二进制全部设置为一。
当我们对这一亿个 email 地址都进行这样的处理后。一个针对这些 email 地址的布隆过滤器就建成了。

再如此题:

A,B 两个文件,各存放 50 亿条 URL,每条 URL 占用 64 字节,内存限制是 4G,让你找出 A,B 文件共同的 URL。如果是三个乃至 n 个文件呢? 分析 :如果允许有一定的错误率,可以使用 Bloom filter,4G 内存大概可以表示 340 亿 bit([bɪt])。将其中一个文件中的 url 使用 Bloom filter 映射为这 340 亿 bit,
然后挨个读取另外一个文件的 url,检查是否与 Bloom filter,如果是,那么该 url 应该是共同的 url(注意会有一定的错误率)。”

 

 

https://segmentfault.com/a/1190000002729689

转载于:https://www.cnblogs.com/twoheads/p/10141801.html

http://www.jmfq.cn/news/5215933.html

相关文章:

  • 国内网站放国外服务器/海淀网站建设公司
  • 做网站那个php好用/南宁seo排名首页
  • 政府集约化网站建设建议/关键词排名的排名优化
  • 凯里建设网站/网络营销常用的工具
  • 国内做香港视频网站/在线代理浏览国外网站
  • 网站建设的意思/东莞网站建设优化排名
  • 程序员做任务的网站/seo全称是什么
  • 门户网站建设平台/百度开户需要什么条件
  • 网站源码是用什么做的/国际新闻消息
  • 黄石商城网站建设/百度网盘登录入口网页版
  • 买域名做网站跳转/今日足球比赛预测推荐分析
  • 联谊会总结网站建设对外宣传/软文广告怎么写
  • 58做网站一年多少钱/微信客户管理系统平台
  • php网站开发技术代码/如何做好营销
  • 常州个人做网站/视频号链接怎么获取
  • 武汉小程序开发公司/西安区seo搜索排名优化
  • 深圳专业优定软件网站建设/电商代运营收费标准
  • 手机版网站做一下多少钱/百度软件中心官网
  • 网站系统建设需要什么/短期培训班学什么好
  • 聊城冠县网站建设/百度app下载
  • 为什么要建设网站/网站keywords
  • 科技经济导刊官网/福建seo网站
  • 做网页引用别的网站的视频/百度seo正规优化
  • 手机建站程序免费下载/短视频营销方式有哪些
  • 抖音推广运营/太原seo哪家好
  • 张家港做政府网站的公司/东莞seo关键词排名优化排名
  • 宝塔做网站/郑州见效果付费优化公司
  • 网站建设 技术 哪些内容/数据分析师要学什么
  • wordpress页面添加新闻/pc网站优化排名软件
  • 空间坐标系做图网站/seo快速排名代理