日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python hash

發布時間:2025/7/14 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python hash 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.



在 python3 中hash

help(hash)Help?on?built-in?function?hash?in?module?builtins:hash(obj,?/)Return?the?hash?value?for?the?given?object.#返回給定對象的哈希值Two?objects?that?compare?equal?must?also?have?the?same?hash?value,?but?thereverse?is?not?necessarily?true.#兩個比較相等的對象也必須有相同的散列值,但是逆轉不一定是正確的。

????Hash,一般翻譯做“散列”,也有直接音譯為“哈希”的,就是把任意長度的輸入(又叫做預映射, pre-p_w_picpath),通過散列算法,變換成固定長度的輸出,該輸出就是散列值。

????一個典型的空間換時間的算法,根據哈希出來的關鍵字進行快速的查詢

構造方法:

????① 直接尋址法

????????取關鍵字或關鍵字的某個線性函數值為散列地址。即H(key)=key或H(key) = a·key + b,

????????其中a和b為常數(這種散列函數叫做自身函數)

????② 數字分析法

????????分析一組數據的某些特征,比如,比如在學校里用學生的年齡來作為標識的話,會有很大

????????的沖突率,如果利用學生的學號作為標識的話,沖突率就會大大下降,因此數字分析就是

????????找出這些特征的規律,盡可能利用這些數據來構成沖突幾率較低的散列地址

????③ 平方取中法

????????先平方 后取中 生成散列地址

????④ 折疊法

????????均勻分割 分別取和 生成散列地址

????⑤ 隨機數法

????????選擇一隨機函數,取關鍵字的隨機值作為散列地址,通常用于關鍵字長度不同的場合。

????⑥ 除留余數法

????????取關鍵字被某個不大于散列表表長m的數p除后所得的余數為散列地址。即 H(key) =?

????????key MOD p, p<=m。不僅可以對關鍵字直接取模,也可在折疊、平方取中等運算之后取模。

????????對p的選擇很重要,一般取素數或m,若p選的不好,容易產生同義詞

處理沖突的方法

? ?① 開放尋址法:Hi=(H(key) + di) MOD m,i=1,2,…,k(k<=m-1),其中H(key)為散列函數,m為散列表長,

????di為增量序列,可有下列三種取法:? ?

????1).di=1,2,3,…,m-1,稱線性探測再散列;

????2). di=1^2,(-1)^2,2^2,(-2)^2,(3)^2,…,±(k)^2,(k<=m/2)稱二次探測再散列;

????3). di=偽隨機數序列,稱偽隨機探測再散列。

????② 再散列法:Hi=RHi(key),i=1,2,…,k RHi均是不同的散列函數,即在同義詞產生地址沖突

????? 時計算另一個散列函數地址,直到沖突不再發生,這種方法不易產生“聚集”,但增加了計

??????算時間。

????③ 鏈地址法(拉鏈法)

????④ 建立一個公共溢出區

轉載于:https://blog.51cto.com/zj734627415/1931913

總結

以上是生活随笔為你收集整理的python hash的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。