Hallo,
ich bin Student und arbeite mich in das Thema Hashing und Hashfunktionen ein. Jetzt wollte ich das mal ein bisschen ausprobieren und habe folgendes versucht:
Es sollen die Zahlen von 0 bis 10 mit der Funktion h(k) = k mod 11 gehasht werden.
function h(k, N) {
return k%N;
}
var hashTable = new Array();
document.write("k ---- h(k)");
for (var i = 0;i<11;i++) {
document.write((i*i) + " ---- "+h((i*i),11));
hashWert = h((i*i),11);
if (typeof hashTable[hashWert] != "undefined") hashTable[hashWert]=hashTable[hashWert]+1;
else hashTable[hashWert]=0;
}
document.write("<br>");
for (i in hashTable) {
document.write("hashTable["+i+"]="+hashTable[String(i)]);
}
Irgendwie funktioniert das aber nicht so wie es soll. Kann mir jemand den Fehler zeigen und eventuell korrigieren?