Hm, muss eine Hashfunktion surjektiv sein? Ich denke, dass das häufig nicht sinnvoll ist. In deinem Beispiel musst du insbesondere etwas vorsichtiger sein, denn eine Funktion besteht nicht nur aus einer Funktionsvorschrift, sondern vielmehr über den definierten Mengen. Denn zu deiner Funktionsvorschrift kann man sowohl bijektive und damit insb. surjektive, injektive als auch Funktionen konstruieren, die weder das eine noch das andere sind.