"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 루프 반복 내에서 내 난수가 동일한 이유는 무엇입니까?

루프 반복 내에서 내 난수가 동일한 이유는 무엇입니까?

2024년 11월 12일에 게시됨
검색:981

Why are My Random Numbers the Same Within Loop Iterations?

루프 반복 내에서 동일한 난수

15번 실행되는 루프에서 각 반복마다 dh.setDoors()를 호출했습니다. 이 함수 내에서 srand(time(0))이 호출되어 의사 난수 생성을 시작합니다. 그러나 루프 내에서 rand()에 대한 후속 호출은 15번의 반복 전체에 걸쳐 carSetter 및 결정자의 상수 값을 생성합니다.

이 동작은 srand(time(0))이 난수 생성기 기반의 시드를 설정하기 때문에 발생합니다. 현재 시간에. 루프가 빠르게 실행되므로 time(0)은 매번 동일한 값을 반환하므로 결과적으로 동일한 의사 난수 시퀀스가 ​​생성됩니다.

이 문제를 해결하려면 srand(time(0 )) 프로그램 시작 시 한 번, 일반적으로 다음과 같은 프로세스를 따릅니다:

srand(time(0));

for (int i = 0; i 

이 초기화를 한 번만 수행하면 의사 난수 생성기가 루프의 각 반복에 대해 고유한 숫자 시퀀스를 생성하여 carSetter 및 결정자 값의 예상되는 변화를 생성합니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3