Gerando funções de hash independentes emparelhadas k

Estou tentando implementar umEsboço de contagem mínima algoritmo em Scala, e por isso preciso gerar funções de hash independentes de k pairwise.

Este é um nível mais baixo do que qualquer coisa que eu já tenha programado antes, e eu não sei muito sobre funções hash, exceto em classes Algorithms, então minha pergunta é: como eu gero essas funções hash independentes?

Eu deveria usar uma função hash como MD5 ou MurmurHash? Eu apenas gero funções hash k do formuláriof(x) = ax + b (mod p), onde p é primo e aeb são números inteiros aleatórios? (isto é, ofamília hashing universal todos aprendem em algoritmos 101)

Estou procurando mais pela simplicidade do que pela velocidade bruta (por exemplo, vou usar algo 5x mais lento se for mais simples de implementar).

questionAnswers(2)

yourAnswerToTheQuestion