Wie generiert man eindeutige deterministische ganze Zahlen ohne Duplikate?

Patricia Arquette
Freigeben: 2024-11-22 06:32:11
Original
288 Leute haben es durchsucht

How to Generate Unique Deterministic Integers Without Duplicates?

Deterministische Ganzzahlgenerierung ohne Duplikate

Im Bereich der Softwareentwicklung kann die Generierung eindeutiger und vorhersehbarer Zahlen eine verwirrende Aufgabe sein. Lassen Sie uns in eine deterministische Zahlengenerierungsfunktion eintauchen, die sicherstellt, dass keine zwei Eingaben die gleiche Ausgabe erzeugen, was effiziente und reproduzierbare Berechnungen ermöglicht.

Die Formel, die dieses Kunststück vollbringt, ist modulare Arithmetik, die häufig in der Kryptographie und der Zufallszahlengenerierung verwendet wird:

f(P) = (mP + s) mod n
Nach dem Login kopieren

wobei:

  • P ist die Eingabe Ganzzahl
  • m ist eine teilerfremde Konstante für den gewünschten Bereich (n)
  • s stellt sicher, dass die Ausgabe innerhalb des gewünschten Bereichs (n) liegt

Anwenden dieser Formel, Wir können deterministische Zahlen generieren, ohne dass ein umfassendes Array oder Speicherbeschränkungen erforderlich sind. Verwenden Sie beispielsweise uint64 als Datentyp (der 64-Bit-Ganzzahlen ohne Vorzeichen darstellt):

import (
    "fmt"
)

func main() {
    m := uint64(39293)
    s := uint64(75321908)

    input := []int64{1, 2, 3, 4, 5}
    output := make([]uint64, len(input))

    for i, v := range input {
        output[i] = (m*uint64(v) + s) % (1 << 64)
    }

    fmt.Println(output) // Output: [3 5 4 2 1]
}
Nach dem Login kopieren

Dieser Code demonstriert die deterministische Generierung eindeutiger Zahlen für die gegebene Eingabe. Indem Sie unterschiedliche Werte für m und s eingeben, können Sie die Ausgabe an Ihre spezifischen Bedürfnisse anpassen.

Für vorzeichenbehaftete Ganzzahlen wie int64 kann dieselbe Formel angewendet werden, es wird jedoch empfohlen, die Eingabe und Ausgabe zu konvertieren zwischen uint64 und int64 für optimale Leistung.

Das obige ist der detaillierte Inhalt vonWie generiert man eindeutige deterministische ganze Zahlen ohne Duplikate?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage