'Intelligentes Probieren': Der kleinste denkbare Wert für \(m\) ist \(m=4\), damit überhaupt genug Hashwerte zur Verfügung stehen. Für \(p\) gilt die Bedingung, dass für jedes Paar \(\{s_i,s_j\} \space i \ne j \) aus \(S\) gelten muss
$$ s_i \not\equiv s_j \mod p$$
das ist recht schnell durchprobiert. So ist z.B. $$\begin{aligned} 0 &\equiv 18 &&\mod 2 \\ 0 &\equiv 3 &&\mod 3 \\ 3 &\equiv 18 &&\mod 5 \\ 7 &\equiv 18 &&\mod 11 \end{aligned}$$ erst mit \(q=13\) sind alle Reste unterschiedlich.
Für die Parameter \(a\) und \(b\) fällt mir auch nur 'ausprobieren' ein, wobei \(a \lt p\) und \(b \lt p\) bleibt - alles andere macht keinen Sinn. Mit Hilfe eines Tabellenkalkulationsprogramms ist man dann sehr schnell bei \(a=5\) und \(b=1\). Somit ist
$$h(x) = ((5x + 1) \bmod 13) \bmod 4$$