C#에서 고유한 난수 생성
임의의 고유 번호를 생성해야 하는 애플리케이션을 개발할 때 개발자는 System.Random 클래스와 관련된 문제에 자주 직면합니다. DateTime.Now.Ticks를 시드로 사용하더라도 여전히 중복된 숫자가 있을 수 있습니다.
중복 값 문제 해결
System.Random.Next() 자체는 생성된 숫자의 고유성을 보장하지 않습니다. 더 좁은 범위(예: 0~10)와 결합하면 중복 값이 발생할 확률이 더 높아집니다.
대안: 목록 유지 관리
이러한 제한을 극복하기 위한 보다 강력한 접근 방식은 생성된 번호 목록을 유지하는 것입니다. 잠재적인 번호가 목록에 이미 존재하는지 확인하면 중복을 피할 수 있습니다.
다음은 이 전략을 사용하여 수정된 구현입니다.
<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>
이러한 접근 방식은 생성된 숫자 목록을 유지하고 중복 항목을 필터링하여 진정으로 고유한 값을 생성하도록 보장합니다.
위 내용은 C#에서 반복되지 않는 난수를 생성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!