루프에서 랜덤 숫자를 효율적으로 생성
배열 내에서 동일한 값을 초래합니다. 이는
가 각 반복에서 시스템 클록과 함께 다시 시작되기 때문입니다. 루프가 빠르게 실행되면 시계가 크게 변경되지 않아 동일한 시드와 동일한 "랜덤"숫자 시퀀스가 발생합니다. 솔루션 : 단일 공유 인스턴스<code class="language-csharp">// Inefficient random number generation public static int RandomNumber(int min, int max) { Random random = new Random(); return random.Next(min, max); }</code>
인스턴스를 사용하면 하나의 객체 만 생성됩니다.
<code class="language-csharp">byte[] mac = new byte[6]; for (int x = 0; x < 6; x++) { mac[x] = (byte)RandomNumber(0, 255); }</code>진술은 다중 스레드 시나리오에서 인종 조건으로부터 보호하여 한 번만 한 번만
메소드에 액세스하도록 보장합니다. 이것은 생성 된 숫자의 무결성과 무작위성을 유지합니다. mac
위 내용은 단단한 루프에서`random.next ()`에 대한 반복 호출이 동일한 숫자를 생성하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!