当前位置:首页 > 经验 >

哈希算法的三个基本特征(哈希算法的真实案例)

来源:原点资讯(www.yd166.com)时间:2022-11-18 03:41:17作者:YD166手机阅读>>

如下图所示,当两个文本只有一个字变化时,如果使用普通Hash则会导致两次的结果发生较大改变,而SimHash的局部敏感特性,会导致只有部分数据发生变化。

哈希算法的三个基本特征,哈希算法的真实案例(13)

5.2 GeoHash

GeoHash将地球作为为一个二维平面进行递归分解。每个分解后的子块在一定经纬度范围内拥有相同的编码。以下图为例,这个矩形区域内所有的点(经纬度坐标)都共享相同的GeoHash字符串,这样既可以保护隐私(只表示大概区域位置而不是具体的点),又比较容易做缓存。

哈希算法的三个基本特征,哈希算法的真实案例(14)

下面以一个例子来理解下这个算法,我们对纬度39.3817进行逼近编码 :

  • 地球纬度区间是[-90,90],对于这个区间进行二分划分左区间[-90,0), 右区间[0,90]。39.3817属于右区间,标记为1
  • 将右区间[0,90]继续进行划分,左区间[0,45) ,右区间[45,90]。39.3817属于左区间,标记为0
  • 递归上面的过程,随着每次迭代,区间[a,b]会不断接近39.3817。递归的次数决定了生成的序列长度。
  • 对于经度做同样的处理。得到的字符串,偶数位放经度,奇数位放纬度,把2串编码组合生成新串。对于新串转成对应10进制查出实际的base32编码就是类似WX4ER的hash值。

整体递归过程如下表所示:

哈希算法的三个基本特征,哈希算法的真实案例(15)

这里有一篇文章详细介绍了GeoHash,有兴趣的同学可以移步这里:

腾讯技术工程:app 是如何快速定位我们位置的?深入了解 geohash 算法及其实现

5.3 布隆过滤器

布隆过滤器被广泛用于黑名单过滤、垃圾邮件过滤、爬虫判重系统以及缓存穿透问题。对于数量小,内存足够大的情况,我们可以直接用hashMap或者hashSet就可以满足这个活动需求了。但是如果数据量非常大,比如5TB的硬盘上放满了用户的参与数据,需要一个算法对这些数据进行去重,取得活动的去重参与用户数。这种时候,布隆过滤器就是一种比较好的解决方案了。

布隆过滤器其实是基于bitmap的一种应用,在1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数,用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难,主要用于大数据去重、垃圾邮件过滤和爬虫url记录中。核心思路是使用一个bit来存储多个元素,通过这样的方式来减少内存的消耗。通过多个hash函数,将每个数据都算出多个值,存放在bitmap中对应的位置上。

布隆过滤器的原理见下图所示:

哈希算法的三个基本特征,哈希算法的真实案例(16)

栏目热文

通俗易懂的哈希算法(哈希算法都有哪些)

通俗易懂的哈希算法(哈希算法都有哪些)

本文转载自微信公众号,孤独烟本文故事绝对真实,如有雷同,绝对不是巧合!话说前几天有一次,某大厂的二面。然后呢,烟哥那天刚...

2022-11-18 03:01:13查看全文 >>

哈希算法背景(哈希算法缺点)

哈希算法背景(哈希算法缺点)

在程序员的实际开发中,哈希算法常常能用得到,本文以哈希算法的原理和应用为核心,和大家详细讲解一下哈希算法的概念、常见算法...

2022-11-18 03:32:00查看全文 >>

哈希算法四种特性(哈希算法原理详解)

哈希算法四种特性(哈希算法原理详解)

什么是哈希算法哈希算法将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯...

2022-11-18 03:14:13查看全文 >>

哈希256算法详解(哈希算法详解图解)

哈希256算法详解(哈希算法详解图解)

从输出的哈希值反推回输入,这从计算的角度是不可行的。• 来源:Linux.cn • 作者:Mike Bursell • ...

2022-11-18 02:57:10查看全文 >>

最简单的哈希算法(哈希算法通俗易懂)

最简单的哈希算法(哈希算法通俗易懂)

作者:小傅哥 博客:https://bugstack.cn沉淀、分享、成长,让自己和他人都能有所收获!一、前言哈希表的历...

2022-11-18 03:08:01查看全文 >>

李永乐老师讲哈希算法(李永乐老师rsa算法)

李永乐老师讲哈希算法(李永乐老师rsa算法)

我是一个南方人,在湖北武汉读的一个普通本科的软件工程专业。高考时的发挥和最后的成绩并没有让我很满意,填完志愿后我便觉得万...

2022-11-18 03:22:58查看全文 >>

哈希算法的由来(谈谈你对哈希算法的理解)

哈希算法的由来(谈谈你对哈希算法的理解)

【编者按】区块链,这个之前主要在IT和金融领域被广泛讨论的概念,因为中央政治局一次集体学习而迅速在普通民众间成为高频词和...

2022-11-18 03:34:53查看全文 >>

比特币哈希算法(比特币的哈希函数)

比特币哈希算法(比特币的哈希函数)

在接触过或购买过数字藏品的朋友来说,每份数字藏品上都有一份“哈希值”,这些所谓的“哈希值”由一串很长的数字 字母构成,而...

2022-11-18 03:36:27查看全文 >>

哈希算法通俗理解(哈希算法详解图解)

哈希算法通俗理解(哈希算法详解图解)

比特币的区块链以线性“链”的方式存储区块,每个区块在数学上都指向前一个区块。通过这种方式,即使没有对区块进行明确的编号,...

2022-11-18 03:18:57查看全文 >>

滚丝机正丝调试教程(滚丝机怎么调试和操作图解)

滚丝机正丝调试教程(滚丝机怎么调试和操作图解)

钢筋直螺纹滚丝机目前已经成为建筑工程项目处理钢筋的主要操作设备了。但是因为我国建筑行业本身的局限性,我们的建筑工人大多...

2022-11-18 03:34:11查看全文 >>

文档排行