C의 루프 내에서 고유한 난수 생성
C에서 루프 내에서 난수를 생성하는 코드를 작성하면 때때로 예상치 못한 결과가 발생할 수 있습니다. . 다음 코드 조각을 고려하십시오.
for (int t = 0; t < 10; t++) { int random_x; srand(time(NULL)); random_x = rand() % 100; cout << "\nRandom X = " << random_x; }
이 코드의 문제는 루프 내에서 srand(time(NULL))를 반복적으로 사용하는 데 있습니다. srand()는 난수 생성기를 초기화하는 데 사용되지만 반복 중에 이를 여러 번 호출하면 동일한 난수 시퀀스가 생성됩니다.
각 반복마다 다른 난수를 생성하려면 srand( )은 한 번만 호출해야 하며, 프로그램 시작 시 호출하는 것이 좋습니다. 이렇게 하면 난수 생성기의 시드가 한 번만 설정되어 각 반복의 시작점을 효과적으로 "무작위화"할 수 있습니다.
int main() { srand(time(NULL)); for (int t = 0; t < 10; t++) { int random_x = rand() % 100; cout << "\nRandom X = " << random_x; } }
또한 난수 초기화를 완전히 재설정해야 하는 경우 다음을 수행할 수 있습니다. 다른 시드 값을 사용하여 srand()를 다시 호출하십시오. 그러면 이전과 다른 새로운 난수 시퀀스가 생성됩니다.
위 내용은 C 루프에서 고유한 난수를 생성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!