Heim >Backend-Entwicklung >C++ >Wie kann ich in C# eindeutige Zufallszahlen generieren, wenn System.Random fehlschlägt?
Das Generieren eindeutiger Zufallszahlen ist bei vielen Programmieraufgaben von entscheidender Bedeutung. Die in C# integrierte System.Random
-Klasse garantiert jedoch nicht automatisch die Einzigartigkeit. Dies kann zu doppelten Zahlen führen, wie ein Entwickler herausfand, selbst wenn die Random
-Instanz außerhalb der Funktion deklariert wird.
Das Problem und eine bessere Lösung:
Der mit Random.Next()
verwendete Seed steuert die Einzigartigkeit nicht direkt. Hier ist eine effektivere Strategie:
Sammlungen für Einzigartigkeit nutzen:
<code class="language-csharp">public Random a = new Random(); public List<int> randomList = new List<int>(); int MyNumber = 0; private void GenerateUniqueNumber() { MyNumber = a.Next(0, 10); if (!randomList.Contains(MyNumber)) randomList.Add(MyNumber); }</code>
Erstellen eines benutzerdefinierten Zufallszahlengenerators:
Alternative Bibliotheken erkunden:
Mehrere Alternativen bieten eine verbesserte Zufallszahlengenerierung:
RandomNumberGenerator
: Eine kryptografisch sicherere Option.Guid.NewGuid()
: Erzeugt global eindeutige Bezeichner (GUIDs), geeignet, wenn die sequentielle Eindeutigkeit nicht entscheidend ist.System.Numerics.Tensors
: Bietet Zufallsstichprobenmethoden für verschiedene Verteilungen.Der beste Ansatz hängt von den Anforderungen der Anwendung, Leistungseinschränkungen und dem erforderlichen Grad an Zufälligkeit ab.
Das obige ist der detaillierte Inhalt vonWie kann ich in C# eindeutige Zufallszahlen generieren, wenn System.Random fehlschlägt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!