Ziel
Generieren Sie eine deterministische Funktion, die Eingabezahlen eindeutig zuordnet Ausgabezahlen innerhalb eines angegebenen Bereichs, ohne Duplikation.
Methode
Verwenden Sie modulare Arithmetik basierend auf der affinen Chiffre:
Parameter:
Beispiel für uint64
Transformationsfunktion:
func transform(p uint64) uint64 { return m * p + s // implicitly mod'd 2^64 by the type's size }
Beispiel mit int64
Konvertieren Sie für vorzeichenbehaftete Zahlen Eingabe und Ausgabe zwischen uint64 und int64, um die beizubehalten eindeutige Zuordnung:
func signedTransform(p int64) int64 { return int64(transform(uint64(p))) }
Garantien
Das obige ist der detaillierte Inhalt vonWie generiert man eindeutige, deterministische Zahlen mit einer 1:1-Zuordnung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!