루프 반복 내 동일한 난수
15번 실행되는 루프에서는 각 반복마다 dh.setDoors()를 호출했습니다. 이 함수 내에서 srand(time(0))이 호출되어 의사 난수 생성을 시작합니다. 그러나 루프 내에서 rand()에 대한 후속 호출은 15번의 반복 전체에 걸쳐 carSetter 및 결정자의 상수 값을 생성합니다.
이 동작은 srand(time(0))이 난수 생성기 기반의 시드를 설정하기 때문에 발생합니다. 현재 시간에. 루프가 빠르게 실행되므로 time(0)은 매번 동일한 값을 반환하므로 결과적으로 동일한 의사 난수 시퀀스가 생성됩니다.
이 문제를 극복하려면 srand(time(0)만 호출하는 것이 좋습니다. )) 프로그램 시작 시 한 번, 일반적으로 다음과 같은 프로세스를 따릅니다.
<code class="c++">srand(time(0)); for (int i = 0; i < 15; i++) { carSetter = rand() % 3 + 1; decider = rand() % 2 + 1; }</code>
이 초기화를 한 번만 수행하면 의사 난수 생성기가 각 반복에 대해 고유한 일련의 숫자를 생성합니다. 루프를 실행하여 carSetter 및 결정자 값의 예상 변화를 산출합니다.
위 내용은 루프 반복 내에서 내 난수가 동일한 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!