1樓:晨之子
首先註明:雜湊函式的自變數不一定是字串,整數、浮點數等等都可以
基本上不存在反雜湊函式
眾所周知,只有當一個函式的自變數與因變數成一一對應關係的時候,該函式才存在反函式
也就是說,只有當雜湊函式的任意兩個不同的自變數一定不會取到相同的雜湊函式值時,才有可能通過雜湊函式值還原出原先的自變數
但是在這種情況下,雜湊函式通常形式都非常簡單,只需要建立一個布林形的陣列並將其元素與各個自變數一一對應即可。這種情形的雜湊函式應用範圍也相當小。也只有這種情況下,才能夠通過雜湊函式值反推原先的自變數
更通常情況下,自變數的取值範圍非常大以至於不可能把自變數所有的可能的取值一一記錄,但是自變數的被取用的次數相對很少,因此可以建立雜湊表,構造雜湊函式,利用雜湊函式將自變數與雜湊表的元素間建立對映關係
現在很多介紹雜湊表的書籍、文章中都只用了很小的篇幅來介紹雜湊表的實現原理,而絕大部分內容都是關於如何設計雜湊函式使得雜湊函式值的分佈儘可能平均、隨機並且使雜湊函式的運算效率高,以及當雜湊表的同一個元素對應了多個自變數時如何高效的記錄與查詢
可見雜湊表最廣泛的應用都是在多個自變數對應一個雜湊函式值的情形下的
在這種普遍情形下,會有很多個自變數的雜湊函式值相同,因而不可能通過雜湊函式值反推出自變數
2樓:匿名使用者
理論上是能,不過那樣雜湊就沒啥意義了。
字串每個字元本身就是一個整數,當然可以把所有字元連線成一個大整數,這樣也就能還原字串了。不過這就是把n個元素雜湊到n個位置。。。
通常情況下,一個位置會同時對應幾個元素,元素各不相同,只靠一個整數也就還原不了了。
3樓:匿名使用者
hash函式的用突在於快速判斷一個元素是否出現過,而不是可以用於反向查詢。
比如linux下的md5sum,就可以計算一個檔案的hash值,可以用於判斷檔案是否損壞。
如果你需要反響查詢,可以考慮用兩棵平衡二叉樹,基本上c++裡面可以直接用stl的map
4樓:
你可以把整數看成陣列的下標,陣列裡存的是字串元素。
5樓:
雜湊函式最有名的特點是不可逆的
這個有人會的話頭送他
有做保險的朋友嗎想給新車上保險。請賜教
交強險是法律強制規定要買的,其它的保險都可以不買。從實踐中來說,越是新車越要買商業保險,理由是,開新車的以新手為多,新手由於技術不熟,出險的可能性更大 其次是,新車更惹眼,更易被盜 被劃。因此,商業三者險 車損險 盜搶險 玻璃險等還是建議要買上。新車質量過關的話,自燃險可買可不買。不計免賠則看你自己...
懂中醫的朋友幫忙看看這個方子怎麼樣?請賜教!謝謝
從你說的 情況我覺得先調理脾胃,服用中成藥參苓白朮丸把脾胃調理好,再處理陰虛血虛的專情況屬。你說的經常熬夜容易虛火,出現 幹,便祕,長期毒素沒排除,面色偏黃,通過補血養陰調理基本可恢復,療程看你的具體情況而定,一般至少得1 2周。方中就石斛稍微貴點,看你用什麼樣的。藥物只是輔助的,希望以後儘量不要再...
請熟悉重慶的朋友來幫忙!謝謝
從重慶市大禮堂到解放碑有3公里左右,可坐262,862.130.132.104路車,車程20分鐘左右 重慶市大禮堂到遊樂場有4.6公里左右,可坐809.338.125.870路車,車程30分鐘左右 大禮堂 解放碑可乘112等多路車有4站路,車行約10分鐘.大禮堂到洋人街約12公里,乘車約40分鐘.重...