Ich würde gerne wissen, ob es eine Funktion von n-Bit-Zahlen bis n-Bit-Zahlen gibt, die die folgenden Eigenschaften aufweist:
- sollte bijektiv sein
- Sowohl als auch sollten ziemlich schnell berechenbar sein
- sollte eine Zahl zurückgeben, die keine signifikante Korrelation zu ihrer Eingabe aufweist.
Das Grundprinzip ist folgendes:
Ich möchte ein Programm schreiben, das mit Daten arbeitet. Einige Informationen der Daten werden in einem binären Suchbaum gespeichert, in dem der Suchschlüssel ein Symbol eines Alphabets ist. Mit der Zeit füge ich dem Alphabet weitere Symbole hinzu. Neue Symbole erhalten einfach die nächste freie Nummer. Daher wird der Baum immer eine kleine Neigung zu kleineren Schlüsseln haben, was mehr Neuausgleich bewirkt, als ich für nötig halte.
Meine Idee ist es, die Symbolzahlen mit so zu zerfleischen, dass sie über den gesamten Bereich von . Da die Symbolnummern nur bei der einmaligen Ein- und Ausgabe eine Rolle spielen, sollte die Anwendung einer solchen Funktion nicht zu teuer sein.
Ich habe über eine Iteration des Xorshift-Zufallszahlengenerators nachgedacht, aber ich weiß nicht wirklich, wie ich sie rückgängig machen kann, obwohl dies theoretisch möglich sein sollte.
Kennt jemand eine solche Funktion?
Ist das eine gute Idee?