Heim > Backend-Entwicklung > C++ > Warum gibt mein Zufallsstringgenerator immer den gleichen String zurück?

Warum gibt mein Zufallsstringgenerator immer den gleichen String zurück?

Susan Sarandon
Freigeben: 2025-01-05 09:24:38
Original
603 Leute haben es durchsucht

Why Does My Random String Generator Keep Returning the Same String?

Zufallsstringgenerator gibt denselben String zurück

Ein häufiges Problem bei Zufallsstringgeneratoren tritt auf, wenn die generierten Strings identisch erscheinen, selbst wenn der Generator mehrmals aufgerufen wird. Dieses Problem ergibt sich aus der Tatsache, dass der Generator innerhalb der Funktion initialisiert wird, was dazu führt, dass derselbe Satz von Zufallswerten wiederholt generiert wird.

Lösung

Um unterschiedliche Zufallszeichenfolgen sicherzustellen, sollte die Random-Instanz verwendet werden außerhalb der Funktion erstellt werden, wo sie während des gesamten Lebenszyklus des Programms zugänglich bleibt. Dadurch behält die Instanz ihren Zustand bei und verhindert so die Generierung identischer Zeichenfolgen.

Hier ist eine aktualisierte Version Ihres Codes:

private static Random random = new Random((int)DateTime.Now.Ticks); //thanks to McAden

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

Wenn Sie nun die RandomString-Funktion zweimal aufrufen, Es werden zwei unterschiedliche Zeichenfolgen mit vier Zeichen generiert, was zu einer Ausgabe ähnlich „UNTE-FWNU“ anstelle von „UNTE-UNTE“ führt.

Das obige ist der detaillierte Inhalt vonWarum gibt mein Zufallsstringgenerator immer den gleichen String zurück?. 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