2016-01-23 65 views
0

請告訴我如何找出散列函數系列中包含的函數的最小數目: {1..n} -> {1..m} 我知道defintion,我知道有很多家庭,但我找不到如何構建MINIMAL家族。最小系列的散列函數

這將是很好,如果有人能告訴我關於構建例如這樣的家庭的過程:{1,2,3,4}->{1,2}

請幫幫我!問候M.

+6

我真的不明白這個問題。最小的家族映射的屬性是什麼?{1,2,3,4} - > {1,2} *。顯然,*會*碰撞。這個函數是將所有這些函數映射到家庭的一部分嗎? –

+2

我投票結束這個問題作爲題外話,因爲它是關於加密理論而不是編程。 –

回答

-1

謝謝你們的回覆,我終於想出瞭如何要做MINIMAL family of hashing functions。 在這種情況下,minimal意味着沒有函數可以從該系列中刪除,以保持散列函數族的條件。例如,對於{1,2,3,4} -> {1,2}的功能在儘可能少的家庭的數量爲6。例如,功能表中的值:

1 1 2 1 1 2 1 2 1 2 2 1 2 2 1 1 2 1 2 1 2 1 1 2

每個段表示其他功能的值。

1

好奇的問題,還是不好問?

散列函數本質上映射(1..m)到(1..n)任何函數都可以做到這一點,然後成爲哈希函數。 n小於m!

當一個人談論家庭,它是一種算法 ...的

功能所以總數是它得到1..1任何功能,因此與N個子集的任何分區:行使。有n個或少於n個子集= m^n的任何分區。提示:與具有n-1個或少於n-1個子集的任何分區比較。

最小= 1:任何映射!

函數的一般數量:通常,散列函數是一致的,所以每個子集必須有m/n個元素。所以編號= Cm,m/nx C(mm/n),m/nx C(m-km/n),m/n ...