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

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

DDD
DDD원래의
2024-12-09 17:20:12852검색

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.