哈希函数的最小族

Minimal family of hash functions

请告诉我如何找出集合的哈希函数族中包含的最少函数数: {1..n} -> {1..m} 我知道定义,我知道有很多家庭,但我找不到如何构建 MINIMAL 家庭。

如果有人能告诉我构建这样一个家庭的过程,那就太好了:{1,2,3,4}->{1,2}

请帮帮我!问候 M.

好奇的问题,还是问得不好?

哈希函数本质上是将 (1..m) 映射到 (1..n)任何函数都可以做到这一点,然后是一个散列函数。 n 小于 m !

当谈论家庭时,它是一种算法 ...

所以函数总数 是任何得到 1..n 的函数,所以任何具有 n 个子集的分区:练习。具有 n 个或少于 n 个子集的任何分区 = m^n。提示:与具有 n-1 个或少于 n-1 个子集的任何分区进行比较。

最小 = 1:任何映射!

一般函数个数:一般来说,哈希函数是统一的,所以每个子集必须有m/n个元素。所以number = Cm,m/n x C(m-m/n),m/n x C(m-km/n),m/n ...

谢谢大家的回复,我终于想出办法了MINIMAL family of hashing functions。 在这种情况下,minimal 意味着不能从该族中删除任何函数以保持散列函数族的条件。例如,对于{1,2,3,4} -> {1,2},最小族中的函数数是6。例如,table 函数值:

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

每个段代表另一个函数的值。