perfect-hash

    0熱度

    1回答

    我正在使用Google Maps API,並覺得有一種更好的方法可以搜索全景圖像,然後搜索大量的switch聲明。我會認爲使用外部散列表會更有效率,更容易維護。每張圖片都有一個獨特的panoID,我可以定義。閱讀哈希表,我相信我是正確的,說我可以創建一個表格和完美的功能,以獲得我需要的數據在不斷的時間。有沒有關於如何建立這個好資源?我根本沒有經歷哈希。 我的邏輯是這樣的:每個圖像保存在somete

    1熱度

    1回答

    根據http://java-bytes.blogspot.com/2009/10/hashcode-of-string-in-java.html:「首先,它是一個已知的事實,即沒有完美的哈希算法,沒有碰撞。」 作者談論實際而不是理論上正確的?因爲從理論上講,這裏是一個完美的散列函數:「對於一個給定的對象,給它賦一個新的數字」。有無數的數字,所以我們總是有東西分配給一個獨特的對象。實際上,這是不可行

    3熱度

    3回答

    首先,定義兩個整數N和K,其中N >= K,兩者在編譯時都是已知的。例如:N = 8和K = 3。 接下來,定義一組整數[0, N)(或[1, N]如果這使得答案更簡單)並將其稱爲S。例如:{0, 1, 2, 3, 4, 5, 6, 7} S的子集數與K元素由公式C(N, K)給出。示例 我的問題是這樣的:爲這些子集創建一個完美的最小散列。示例散列表的大小將爲C(8, 3)或56。 我不關心訂購,

    1熱度

    1回答

    我需要構造一個完美的散列函數,它將一組整數[1..2^64-1]映射到自身(此函數實際上是一些複雜的排列)。 爲了解釋這個問題,假設我們在數據庫中有整數主鍵序列。我們需要以一種方式顯示構建一個數字(我們向用戶顯示),其中數字與主鍵相對應,儘可能遠離彼此。 所以,基本上我需要一個大集合整數的雙射函數。例如。 1 - > X1 2 - > X3 3 - > X3 ... 2^64 - 1 - > X2

    1熱度

    1回答

    我需要爲字符串標識符列表創建一個完美的散列表,所以在開始實施之前(我從來沒有這樣做過)我想知道是否有任何好的框架或好的教程可能有用? 謝謝!

    1熱度

    1回答

    我發現gperf適合我的項目,現在正在尋找一種方法來優化生成的表的大小。由於開關-i和-j確定性地影響表的長度,我寫了一個小腳本迭代這些值,找到最小的表長度。當腳本終止時,腳本存儲用於檢索當前最小表的-i和-j值,以及當前嘗試的值,以便稍後繼續搜索。 現在我看到,存在一個開關-m,它表明它完全按照我的小腳本做。我猜想使用這個開關比單獨一次迭代調用gperf要快得多。但我需要知道兩件事情更換的gpe

    6熱度

    9回答

    我有一個整數類型,說long,其值在Long.MIN_VALUE = 0x80...0(-2^63)和Long.MAX_VALUE = 0x7f...f(2^63 - 1)之間。我希望以一種乾淨和有效的方式將〜50%的衝突散列到相同類型的正整數(即1和Long.MAX_VALUE之間)。 我的第一次嘗試是這樣的: Math.abs(x) + 1 (x & Long.MAX_VALUE) + 1 但

    2熱度

    3回答

    我一直在閱讀和學習哈希和哈希表,並與一些代碼一起訓練(我對這個還是很新的,所以我可能會說我錯過了一些錯誤的東西)。我對這個問題提出了完美的散列函數。只要我有,不知怎的,具有完美的哈希函數我自己的自定義類型: class Foo { private int data; override int GetHashCode() { return data.Ge

    6熱度

    1回答

    我有一個從0xc0003000到0xc04a0144的內存地址列表,列表中有很多空缺和< 4096個條目。它在編譯時已知,我想爲它做一個完美的散列。 然而,查找完美的哈希在線給我提供的信息主要與散列字符串有關,而且他們似乎翻譯不好。 爲了清楚我希望能夠在運行時獲得內存地址並快速檢查它是否在哈希中。目前我正在使用平均約8個循環的二進制搜索來找到答案。 任何想法我應該叫什麼樹?

    1熱度

    2回答

    我描述的地址結構,它看起來像: class Address { public string AddressLine1 { get; set; } public string AddressLine2 { get; set; } public string City { get; set; } public string Zip { get; set; }