Hallo zusammen,
ich bin gerade dabei mir eine Hashtable Klasse zu erstellen. Eins vorweg mir geht es um die Implementierung nicht darum eine vorgefertigte Klasse zu verwenden! Deswegen habe ich auch keine spezielle Sprache angegeben.
Also dank Google etc. ist es mir in der Theorie so einigermaßen klar, wie ich das ganze aufziehe. Den Rest konnte ich mir mit .Net Reflektor und dem .Net Framework "reverse enginieren". Es ist so das das .Net Framework die Größe des Container-Arrays aus Primzahlen festlegt. Meine Frage ist nun warum die ausgerechnet Primzahlen verwenden? Hat es eine besondere Bewandnis oder ist es mehr willkürlich und kann genausogut durch andere Zahlen ersetzt werden?
Meine Überlegung bisher:
Die Positionierung der Einträge in der Hashtable würde ich über "Index = Hashcode modulo Hashtablegröße" ermitteln wollen. Mir ist aber nun nicht so klar warum da im .Net Framework ausgerechnet Primzahlen verwendet wurden. Schließlich kann eine Primzahl auch ein Faktor einer anderen Zahl sein und damit wäre schon für mich nichts außergewöhnliches mehr vorhanden. Oder sorgen die Primzahlen für eine bessere Verteilung innerhalb des Containers, was bei anderen Zahlen nicht wirklich gewährleistet wäre?
Grüße
Rossibaer
ich bin gerade dabei mir eine Hashtable Klasse zu erstellen. Eins vorweg mir geht es um die Implementierung nicht darum eine vorgefertigte Klasse zu verwenden! Deswegen habe ich auch keine spezielle Sprache angegeben.
Also dank Google etc. ist es mir in der Theorie so einigermaßen klar, wie ich das ganze aufziehe. Den Rest konnte ich mir mit .Net Reflektor und dem .Net Framework "reverse enginieren". Es ist so das das .Net Framework die Größe des Container-Arrays aus Primzahlen festlegt. Meine Frage ist nun warum die ausgerechnet Primzahlen verwenden? Hat es eine besondere Bewandnis oder ist es mehr willkürlich und kann genausogut durch andere Zahlen ersetzt werden?
Meine Überlegung bisher:
Die Positionierung der Einträge in der Hashtable würde ich über "Index = Hashcode modulo Hashtablegröße" ermitteln wollen. Mir ist aber nun nicht so klar warum da im .Net Framework ausgerechnet Primzahlen verwendet wurden. Schließlich kann eine Primzahl auch ein Faktor einer anderen Zahl sein und damit wäre schon für mich nichts außergewöhnliches mehr vorhanden. Oder sorgen die Primzahlen für eine bessere Verteilung innerhalb des Containers, was bei anderen Zahlen nicht wirklich gewährleistet wäre?
Grüße
Rossibaer