Heim >Backend-Entwicklung >C++ >Warum produziert mein Zufallszahlengenerator nur eine Zahl und wie kann ich sie beheben?

Warum produziert mein Zufallszahlengenerator nur eine Zahl und wie kann ich sie beheben?

Linda Hamilton
Linda HamiltonOriginal
2025-02-03 08:21:08658Durchsuche

Why Does My Random Number Generator Only Produce One Number, and How Can I Fix It?

Der Zufallszahlengenerator generiert nur ein Problem mit zufälliger Zahl und Lösung

In diesem Artikel wird eine Funktion des Zufallszahlengenerators

nur eine Zufallszahl generiert. Die Hauptursache des Problems ist, dass die Funktion bei jedem Aufruf eine neue

Instanz erstellt. Da der interne Status der -Instanz auf der Initialisierung der Systemaktuhren basiert, erhalten in einem Schließungszyklus mehrere Aufrufe den gleichen Wert. RandomNumber Random Um dieses Problem zu lösen und die Genauigkeit von Zufallszahlen zu gewährleisten, sollte eine Random -Stanz erstellt und wiederverwendet werden. Der folgende Code zeigt, wie man erreicht:

Random Mithilfe der Anweisung synchronisieren wir die Besuche von

Instanzen, um sicherzustellen, dass
<code class="language-csharp">private static readonly Random random = new Random();
private static readonly object syncLock = new object();

public static int RandomNumber(int min, int max)
{
    lock (syncLock)
    {
        return random.Next(min, max);
    }
}</code>
jedes Mal eine eindeutige Zufallszahl in derselben Zeile erzeugt.

lock Eine andere Methode besteht darin, Random Variablen zu verwenden, um eine RandomNumber -Schichtungsinstanz für jeden Thread beizubehalten, um die Synchronisation zu vermeiden:

Das obige ist der detaillierte Inhalt vonWarum produziert mein Zufallszahlengenerator nur eine Zahl und wie kann ich sie beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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