请告诉我如何找出集合的哈希函数族中包含的最少数量的函数:
{1..n} -> {1..m}
我知道定义,我知道有很多家庭,但我找不到如何构建MINIMAL家族。
如果有人能够通过示例向我展示构建这样一个家庭的过程,那就太好了:{1,2,3,4}->{1,2}
请帮帮我!问候M。
答案 0 :(得分:1)
好奇的问题,还是不好问?
哈希函数实质上是将(1..m)映射到(1..n)。 任何函数都可以这样做,然后是一个散列函数。 n小于m!
当谈到家庭时,它就是算法 ......
所以函数总数是获得1..n的任何函数,所以任何具有n个子集的分区:exercise。 n个或少于n个子集的任何分区= m ^ n。提示:与具有n-1个或少于n-1个子集的任何分区进行比较。
最小= 1:任何映射!
函数的一般数量:通常,散列函数是一致的,因此每个子集必须具有m / n个元素。所以number = Cm,m / n×C(m-m / n),m / n×C(m-km / n),m / n ......
答案 1 :(得分:-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
每个段代表另一个函数的值。