AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Vorteil von auf Primzahlen skalierten Hashmaps?

Ein Thema von Namenloser · begonnen am 9. Jul 2010 · letzter Beitrag vom 17. Jul 2010
 
idefix2

Registriert seit: 17. Mär 2010
Ort: Wien
1.027 Beiträge
 
RAD-Studio 2009 Pro
 
#6

AW: Vorteil von auf Primzahlen skalierten Hashmaps?

  Alt 10. Jul 2010, 16:36
Wenn Du nur eine Hashfunktion und keine Familie verwendest, ist die Grösse des Hash Arrays ziemlich sicher völlig egal. Primzahlen bringen da keinen Vorteil (aber auch keinen Nachteil). Die Funktion, die in Alzaimars Hashfunktion verwendet wird, verteilt Dir die Bits ohnehin recht gleichmässig über die vollen 32 Bit. Ich denke, es wäre schneller und um nichts schlechter, Hashmaps der Grösse 2 hoch n zu verwenden und die Hash Adresse einfach zu maskieren, statt modulo Primzahl zu operieren. Letzteres würfelt die Bits natürlich nocheinmal gründlich durcheinander, aber ich glaube nicht, dass das die Verteilung verbessert. Ich würde mir einmal die Verteilung der Werte an Hand von Echtdaten anschauen.

edit: Natürlich fallen beim Maskieren die höherwertigen Bits ganz weg und werden nicht berücksichtigt, aber nachdem die niederwertigen Bits bei dem Algorithmus recht gleichmässig verteilt sein sollten, wird letztlich die Verteilung auch nicht schlechter sein, als wenn man mittels Modulo ungerade Zahl (es muss keine Primzahl sein, weil jede ungerade Zahl ist teilerfremd zu 2 hoch n) alle Bits berücksichtigt. Ausserdem könnte man die höherwerigen Bits berücksichtigen, in dem man z.B. für einen 10 Bit breiten index
x and (x shr 8) and (x shr 16) and (x shr 24) and 1023
verwendet, da spielen dann alle Bits mit.

Geändert von idefix2 (10. Jul 2010 um 16:55 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz