Duplizierung vermeiden: C#-Zufallszahlengenerator
Ihr Code ist so konzipiert, dass er sechs Zufallszahlen zwischen 1 und 49 generiert. Allerdings können diese Zahlen Duplikate enthalten, was in einem lotterieähnlichen Szenario nicht akzeptabel ist. Um dieses Problem zu lösen, werden wir einen effizienten Weg zur Generierung eindeutiger Zufallszahlen in C# untersuchen.
Lösung:
Speichern Sie die generierten Zahlen in einer Sammlung. Überprüfen Sie jedes Mal, wenn eine neue Nummer generiert wird, ob diese bereits im Set vorhanden ist. Falls vorhanden, fahren Sie mit der Generierung einer weiteren Nummer fort, bis Sie eine eindeutige Nummer gefunden haben.
Hier ist eine modifizierte Version Ihres Codes, die diese Lösung implementiert:
<code class="language-csharp">var randomNumbers = new List<int>(); var random = new Random(); while (randomNumbers.Count < 6) { int randomNumber = random.Next(1, 50); // 生成1到49之间的随机数 if (!randomNumbers.Contains(randomNumber)) { randomNumbers.Add(randomNumber); } }</code>
Alternativ können wir die folgende Strategie verfolgen:
Mischen Sie den Stapel und wählen Sie die Methode:
Hier ist der Code für diesen Ansatz:
<code class="language-csharp">var rnd = new Random(); var randomNumbers = Enumerable.Range(1, 49).OrderBy(x => rnd.Next()).Take(6).ToList();</code>
Dieser Ansatz garantiert die Generierung eindeutiger Zufallszahlen, ohne dass benutzerdefinierte Schleifen oder zusätzliche Prüfungen auf Duplikate erforderlich sind.
Das obige ist der detaillierte Inhalt vonWie generiert man sechs eindeutige Zufallszahlen in C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!