왜 각 루프 반복에서 동일한 난수를 얻나요?
루프에서 srand(time(0) ) 함수, 고유한 난수를 생성하려고 합니다. 그러나 관찰해 보면 carSetter 및 결정자 변수가 각 루프 실행 내에서 일관되게 동일한 값을 인쇄한다는 것을 알 수 있습니다.
이 동작은 srand() 함수의 특성에 기인합니다. 호출되면 srand()는 지정된 매개변수를 기반으로 난수 생성기의 시드를 초기화합니다. 이 경우 현재 시간을 초 단위로 나타내는 time(0)이 사용됩니다. 그러나 루프가 신속하게 실행되므로 time(0) 값은 루프 반복 전체에서 동일하게 유지됩니다. 결과적으로 시드가 변경되지 않아 매번 동일한 의사 난수 시퀀스가 생성됩니다.
이 문제를 해결하려면 프로그램 시작 시 srand()를 한 번만 호출하여 초기화하는 것이 좋습니다. 루프 실행 중에 변경되지 않는 변수 또는 값이 있는 시드입니다. 이렇게 하면 각 반복마다 고유한 난수가 생성됩니다.
위 내용은 각 루프 반복에서 동일한 난수를 얻는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!