作者whkuo (害羞)
看板ck47th320
標題Re: [問題] Hash function?
時間Mon Mar 22 17:10:02 2004
就演算法常用的方式來僭越說明一下,
hash function常常是在discrete的定義域,值域,做個mapping的動作。
通常的要求是,
1、盡量讓值域裡的每個值出現的機率一致,
2、分布看起來盡量亂,定義域裡相近的輸入,不一定會對應到值域裡相近的輸出
用處有
1、訊息確認碼,
如果訊息在中途有一點點的傳輸錯誤,hash出來的值就會差很多,
可以用檢查hash值確定是否有傳輸錯誤
2、資料結構有用來做較快速的cache search,
舉例來說,
有十萬筆資料,hash值有一百種,
好的hash function能讓每個hash值都有接近一千筆資料對應到,
要搜尋特定一筆資料時,
去針對那筆資料對應的hash值下面一千筆資料的list去找就好了。
3、有時密碼學會用到
因為分布看起來很亂,也是種one way function
以上純就修演算法課時的印象所言,
難免會有不嚴謹,疏漏之處。
※ 引述《genie2 (資格考in 20 days)》之銘言:
: ※ 引述《changkh (月光華華)》之銘言:
: : 你說的是資料結構的hash嗎?
: : 我只記得應用上是給一個值,透過一個function會得到一個索引,
: : 用來搜尋用的。
: 嗯……其實我也不太知道我問的是哪邊的hash
: 就是常常在paper裡都會出現 "Map X to Y by a hash function...."
: 這種句子
: 其實凱揮講的跟我心裡想的差不多
: 但是這跟廣義的"function"到底差在哪?
: function也是把一個值map到另一個值啊!為什麼要特別取hash function這個名字
: 到底有什麼特性,我實在搞不懂
--
t
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.96.120.12