看板 ck47th320 關於我們 聯絡資訊
就演算法常用的方式來僭越說明一下, 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