假设值为x
的典型哈希函数:
h(x) = ( a * x + b ) % R
我想编写一个scala函数说buildHashFunction
,每次执行时都会返回一个新的hashFunction
(使用a和b的随机值)。 R
可以硬编码为相同。
然后,我们的想法是使用生成的hashFunction
来确定性地计算数字的哈希值。
答案 0 :(得分:3)
最明显的方法可以正常工作:
val r = new SecureRandom()
val R = r.nextInt()
def buildHashFunction(): Int => Int = {
val a = r.nextInt()
val b = r.nextInt()
def hashFunction(x: Int) =
( a * x + b ) % R
hashFunction
}