>백엔드 개발 >C++ >C#에서 6개의 고유한 난수를 생성하는 방법은 무엇입니까?

C#에서 6개의 고유한 난수를 생성하는 방법은 무엇입니까?

DDD
DDD원래의
2025-01-12 13:37:46892검색

How to Generate Six Unique Random Numbers in C#?

중복 방지: 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>

또는 다음 전략을 채택할 수도 있습니다.

덱을 섞고 방법을 선택하세요.

  1. 1부터 49까지의 숫자 시퀀스를 만듭니다.
  2. 임의 기능을 사용하여 시퀀스를 섞습니다.
  3. 섞인 순서에서 처음 6개의 숫자를 선택하세요.

이 접근 방식의 코드는 다음과 같습니다.

<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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.