Ich benutze BigInteger in einer Hausaufgabe, um die nächste Primzahl zu berechnen, die ich verwenden kann, um eine Hash-Tabelle, die quadratische Probing verwendet, zu ändern.Ist die Genauigkeit von nextProbablePrime() mit der Größe des Eingabewerts verknüpft?
Die Tabelle speichert Daten, die aus einer Datei eingelesen wurden. Die Beispieldatei, die ich erhalten habe, enthält nur 100 Elemente, aber ich kann nicht davon ausgehen, dass dies der maximale Datensatz ist, auf dem mein Programm getestet wird.
Ich frage mich, ob es eine Beziehung zwischen der Größe des Wertes, den ich an nextProbablePrime übergeben, und der Wahrscheinlichkeit, dass es eine Primzahl korrekt zurückgibt? Mit anderen Worten, gibt es eine Zahl, unter der nextProbablePrime garantiert genau ist? Ist es vernünftig, sich darauf zu verlassen?
Sofern dies keine Voraussetzung ist, würde ich die Dinge einfacher halten. Sie können sich Hashtable ansehen, das eine einfache Progression verwendet, oder HashMap, die Potenzen von zwei verwendet. Ich finde, dass das Reduzieren des Ladefaktors eine nicht ideale, aber vernünftige Hash-Funktion kompensieren kann. –
@PeterLawrey Leider bin ich darauf beschränkt, meine eigene Klasse zu schreiben und darf HashMaps usw. nicht verwenden. Ich denke, Ihr Argument bezüglich des Auslastungsfaktors ist gut, also habe ich es auf 0,5 reduziert, danke! –
Sie können einen Leistungstest ausführen, um den optimalen Ladefaktor für Ihr Dataset zu ermitteln. Obwohl Sie Hashtable oder HashMap nicht verwenden können, können Sie den gesamten Code lesen. ;) –