哈希娱乐 行业新闻 党建先锋

数据结构教学课件7-哈希游戏平台08哈希函数及其构造方法

发布时间:2025-06-05 10:59:30  浏览:

  哈希游戏作为一种新兴的区块链应用,它巧妙地结合了加密技术与娱乐,为玩家提供了全新的体验。万达哈希平台凭借其独特的彩票玩法和创新的哈希算法,公平公正-方便快捷!万达哈希,哈希游戏平台,哈希娱乐,哈希游戏

数据结构教学课件7-哈希游戏平台08哈希函数及其构造方法

  利用哈希函数存储记录时,可能发生冲突,冲突是难免的,只能尽量减少。所以,哈 希方法需要解决以下两个问题:

  (1)简单:即哈希函数的计算简单快速; (2)均匀:对于关键字集合中的任一关键字,哈希函数能 以等概率将其映射到表空间的任何一个位置上。也就是说, 散列函数能将关键字集合随机均匀地分布在表的地址集{0, 1,…,n-1}上,以使冲突最小化。

  对于某个哈希函数H和两个关键字k1,k2,如果k1≠k2,而H(k1)=H(k2),即经过 哈希函数变换后,将不同的关键字映射到同一个哈希地址上,这种现象称为冲突, k1和k2称为同义词。

  设哈希函数为:H(key)=key mod 11,如果两个记录关键字的值分别为2和13,则 H(2)= H(13)=2,即以2和13为关键字的记录发生了冲突,2和13是同义词。

  除余法 H(key)=key mod P(P≤m) 取关键字被P除的余数作为哈希地址,其中m为表长,P为小于m的 整数。用C语言可表示为H(key)=key % P(P≤m),显然该方法 可能会发生冲突,为尽量减少冲突,P应选取小于等于m的最大素 数。 该方法是最为简单常用的一种方法。

  直接定址法 H(key)=a·keyb (a、b为常数) 取关键字的某个线性函数值为哈希地址,这类函数是一一对应函数,不会 产生冲突,但要求地址集合与关键字可能取值的集合大小相同,因此,对 于较大的关键字集合不适用。

  设关键字集合为{20,30,50,60,80,90},关键字可能取值的集合 为100以内10的倍数,所以可选取哈希函数为:H(key)=key/10,则哈希 表下图所示。

  选取某个函数H,按记录的关键字key计算出记录的存储位置H(key),称为哈希 地址,并将记录按哈希地址存放;查找时,由函数H对给定值K计算地址,将K与地址 单元中元素关键字进行比较,确定查找是否成功,这种查找方法称为哈希(散列)方 法。哈希方法中使用的记录关键字与地址之间的函数称为哈希(散列)函数(Hash function)。按这个方法构造的表称为哈希(散列)表(Hash table)。

  以往的查找方法都是建立在比较的基础之上的。我们希望能够在记录的关键字与其 存储地址之间建立一一对应关系,通过这一关系直接找到对应的记录。

  哈希查找就是通过某个函数(规则)将记录存储到线性表中,然后再按照该函数在 线性表中进行查找的方法。

  平方取中法 先通过求关键字的平方扩大相近数的差别,然后根据表长取中间的几位数作为 哈希函数值。因为一个乘积的中间几位数和乘数的每一位都相关,所以由此产 生的哈希地址较为均匀。