Heim > Backend-Entwicklung > C++ > Wie generiert man sich nicht wiederholende Zufallszahlen in C#?

Wie generiert man sich nicht wiederholende Zufallszahlen in C#?

Linda Hamilton
Freigeben: 2025-01-21 13:11:10
Original
845 Leute haben es durchsucht

How to Generate Non-Repeating Random Numbers in C#?

Eindeutige Zufallszahlen in C# generieren

Bei der Entwicklung von Anwendungen, die zufällige eindeutige Zahlen generieren müssen, stoßen Entwickler häufig auf Probleme mit der System.Random-Klasse. Selbst wenn Sie DateTime.Now.Ticks als Startwert verwenden, kann es dennoch zu doppelten Zahlen kommen.

Problem mit doppelten Werten lösen

System.Random.Next() selbst garantiert nicht die Eindeutigkeit der generierten Zahlen. In Kombination mit einem engeren Bereich (z. B. 0 bis 10) ist die Wahrscheinlichkeit, auf doppelte Werte zu stoßen, höher.

Alternative: Listenpflege

Um diese Einschränkung zu überwinden, besteht ein robusterer Ansatz darin, eine Liste der generierten Zahlen zu führen. Duplikate können vermieden werden, indem überprüft wird, ob die potenzielle Nummer bereits in der Liste vorhanden ist.

Das Folgende ist eine modifizierte Implementierung, die diese Strategie verwendet:

<code class="language-csharp">public Random a = new Random();
public List<int> randomList = new List<int>();
int MyNumber = 0;

private void NewNumber()
{
    MyNumber = a.Next(0, 10);
    if (!randomList.Contains(MyNumber))
        randomList.Add(MyNumber);
}</code>
Nach dem Login kopieren

Dieser Ansatz gewährleistet die Erstellung wirklich einzigartiger Werte, indem eine Liste der generierten Zahlen verwaltet und Duplikate herausgefiltert werden.

Das obige ist der detaillierte Inhalt vonWie generiert man sich nicht wiederholende Zufallszahlen in C#?. 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