ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

哈希函数

2021-02-27 11:01:12  阅读:211  来源: 互联网

标签:函数 16 均匀分布 哈希 返回值 输入


有一对 哈希元 a,b
我们可以用下面式子造出哈希函数来
在这里插入图片描述
磁力链接总共有16位,每一位数值范围是0-f,这就是所谓哈希码,
即哈希函数的返回值。

百度百科:哈希码具体是什么?
答:hashCode是jdk根据对象的地址或者字符串或者数字算出来的int类型的数值

能表示的数值范围是????????:每位都是 2的16次方 ,共有16位,所以16个2的16次方。
在这里插入图片描述
哈希函数的性质:
哈希函数的输入域可以是非常大的范围,比如,任意一个字符串,但是输出域是固定的范围(一定位数的bit),假设为S(虽然S可能会很大,但是和输入域没法比),并具有如下性质:

  1. 典型的哈希函数都有无限的输入值域
  2. 当给哈希函数传入相同的输入值时,返回值一样。
  3. 当给哈希函数传入不同的输入值时,返回值可能一样,也可能不一样,这时当然的,因为输出域统一是S,所以会有不同的输入值对应在S中的一个元素上(这种情况称为 哈希冲突)。
  4. 最重要的性质是很多不同的输入值所得到的返回值会均匀分布在S上。这是评价一个哈希函数优劣的关键不同输入值所得到的所有返回值越均匀地分布在S上,哈希函数越优秀,并且这种均匀分布与输入值出现的规律无关。比如,“aaa1”、“aaa2”、“aaa3”三个输入值比较类似,但经过优秀的哈希函数计算后得到的结果应该相差非常大。
  5. 哈希函数的离散性:举个例子就明白了,输入域是0-98的范围输出域是0 1 2

给我99个不同的样本,依次计算不同的输出 0 1 2这三种值
基本上在算完之后,可以说:
有33个输入分布在0位置
有33个输入分布在1位置
有33个输入分布在2位置

前3点性质是哈希函数的基础,第4点是评价一个哈希函数优劣的关键,不同输入值所得到的所有返回值越均匀地分布在S上,哈希函数越优秀,并且这种均匀分布与输入值出现的规律无关。

比如,“aaa1”、“aaa2”、“aaa3”三个输入值比较类似,但经过优秀的哈希函数计算后得到的结果应该相差非常大。

比如在一个房间里面。砸了一瓶香水,这些香水的分子,会固定不动。而哈希函数就是彻底把它打乱的过程。

我们把每一个香水分子的运动轨迹通过哈希函数来确定,经过哈希函数计算后,香水分子会均匀分布在整个房间内!
在这里插入图片描述

哈希函数不是随机函数,其没有任何随机的成分,样本一旦固定,返回值一定是确定的!

哈希函数会打乱输入规律。

经哈希函数 计算完的返回值,和你原始的输入规律是没有关系的!
在这里插入图片描述
在这里插入图片描述
且在0-1上也均匀分布。
比如,
在这里插入图片描述
若是在0-98上均匀分布,那么在0-2上也是均匀分布

面试官是不会让我们实现哈希函数的,因为哈希函数算法很多

一个十六进制的字符等于4个二进制字节 16=2^4
假设一个哈希函数得到2的64次方的范围
所以需要2的8次方乘以2的16次方
在这里插入图片描述
我们把得到的结果批两段,
在这里插入图片描述
在这里插入图片描述
h3相对h1和h2是独立的
在这里插入图片描述
我们可以通过改变系数,做出1000个哈希函数
0位置得到0-f的均匀分布 和其他位置得到0-f的均匀分布是互相独立的
所以,我们通过各个位置的组合 ,本身就可以得到多个哈希函数
在这里插入图片描述

哈希函数极其重要,甚至比哈希表还重要
因为哈希表的实现一定要知道哈希函数的性质!

初级6刚开始

标签:函数,16,均匀分布,哈希,返回值,输入
来源: https://blog.csdn.net/Mr_zhang66/article/details/109374701

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有