Heim > Backend-Entwicklung > C++ > Warum erzeugt mein Zufallszeichenfolgengenerator doppelte Ausgaben?

Warum erzeugt mein Zufallszeichenfolgengenerator doppelte Ausgaben?

Mary-Kate Olsen
Freigeben: 2025-01-05 11:17:41
Original
233 Leute haben es durchsucht

Why Does My Random String Generator Produce Duplicate Outputs?

Zufallszeichenfolgengenerator dupliziert die Ausgabe

Ihr Ziel ist es, zwei verschiedene, aus vier Zeichen bestehende Zufallszeichenfolgen zu generieren. Ihr aktueller Code gibt jedoch Duplikate zurück.

Grundursache

Die Grundursache liegt in der Initialisierung der Random-Instanz innerhalb der RandomString-Methode. Jeder Aufruf der Methode erstellt eine neue Instanz von Random, was zu identischen Folgen von Zufallszahlen führt.

Lösung

Um zwei eindeutige Zufallszeichenfolgen sicherzustellen, verschieben Sie die Initialisierung von die Random-Instanz außerhalb der Methode, in die Klassenebene. Dadurch wird sichergestellt, dass während der gesamten Lebensdauer der Klasse eine einzelne Instanz verwendet wird.

Modifizierter Code

private static Random random = new Random((int)DateTime.Now.Ticks);

private string RandomString(int size)
{
    StringBuilder builder = new StringBuilder();
    char ch;
    for (int i = 0; i < size; i++)
    {
        ch = Convert.ToChar(Convert.ToInt32(Math.Floor(26 * random.NextDouble() + 65)));
        builder.Append(ch);
    }

    return builder.ToString();
}

// get 1st random string 
string Rand1 = RandomString(4);

// get 2nd random string 
string Rand2 = RandomString(4);

// create full rand string
string docNum = Rand1 + "-" + Rand2;
Nach dem Login kopieren

Beispielausgabe

Der geänderte Code generiert zwei eindeutige Zufallszeichenfolgen mit vier Zeichen, z als:

UNTE-FWNU
Nach dem Login kopieren

anstelle von Duplikaten wie:

UNTE-UNTE
Nach dem Login kopieren

Durch die Initialisierung der Random-Instanz auf Klassenebene stellen Sie sicher, dass eine konsistente Folge von Zufallszahlen verwendet wird, was zu Unique führt Zufällige Zeichenfolgen.

Das obige ist der detaillierte Inhalt vonWarum erzeugt mein Zufallszeichenfolgengenerator doppelte Ausgaben?. 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