난수를 생성하려고 시도하는 이상한 행동이 있는데 때로는 완전히 동일하거나 같은 시간에 생성하면 문제가 있습니까? VC 2012 사용
for (int i = array_size; i < (array_size); i++)
{
srand((unsigned int)time(NULL));
int rw = rand() % 960 + (20); //returns a pseudo-random integer between x resolution size 0 -> width
int rh = rand() % 640 + (20); //returns a pseudo-random integer between x resolution size 0 -> height
lwsl_notice("c:%d width %d height %d\n",c, rw, rh);
c++;
}
출력은 다음과 같습니다.
[2016/06/30 09:39:09:7274] NOTICE: c:0 width 606 height 567
[2016/06/30 09:39:09:7274] NOTICE: c:1 width 606 height 567
[2016/06/30 09:39:09:7274] NOTICE: c:2 width 606 height 567
[2016/06/30 09:39:09:7274] NOTICE: c:3 width 606 height 567
루프가 너무 빨라 time(NULL)
항상 동일한 값을 갖습니다. 즉, 생성기는 항상 동일한 시드에서 시작하므로 항상 정확히 동일한 값을 생성합니다.
srand
프로그램에서 한 번만 호출되어야합니다 ( for
루프 외부 ). 일반적으로 사람들은 main
함수 에서 한 번 호출합니다 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다