> 백엔드 개발 > C++ > C 루프에서 고유한 난수를 생성하는 방법은 무엇입니까?

C 루프에서 고유한 난수를 생성하는 방법은 무엇입니까?

DDD
풀어 주다: 2024-12-09 17:20:12
원래의
849명이 탐색했습니다.

How to Generate Distinct Random Numbers in a C   Loop?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿