중복 방지: C# 난수 생성기
귀하의 코드는 1에서 49 사이의 난수 6개를 생성하도록 설계되었습니다. 그러나 이러한 숫자에는 중복이 포함될 수 있으며 이는 복권과 같은 시나리오에서는 허용되지 않습니다. 이 문제를 해결하기 위해 C#에서 고유한 난수를 생성하는 효율적인 방법을 살펴보겠습니다.
해결책:
생성된 숫자를 컬렉션에 저장합니다. 새로운 번호가 생성될 때마다 해당 번호가 세트에 이미 존재하는지 확인하세요. 존재하는 경우 고유 번호를 찾을 때까지 다른 번호를 계속 생성하십시오.
다음은 이 솔루션을 구현하는 수정된 코드 버전입니다.
<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>
또는 다음 전략을 채택할 수도 있습니다.
덱을 섞고 방법을 선택하세요.
이 접근 방식의 코드는 다음과 같습니다.
<code class="language-csharp">var rnd = new Random(); var randomNumbers = Enumerable.Range(1, 49).OrderBy(x => rnd.Next()).Take(6).ToList();</code>
이 접근 방식을 사용하면 사용자 정의 루프나 추가 중복 검사 없이 고유한 난수 생성이 보장됩니다.
위 내용은 C#에서 6개의 고유한 난수를 생성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!