2016-01-23 61 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 ...