C에서 간단한 난수 생성기를 작성했습니다. 이 상한입니다. int l
이 하한입니다.srand (time (NULL))은 시드 값을 빠르게 변경하지 않습니다.
잘 작동하지만 문제가 있습니다. 이 작업을 루프로 실행하면 time(NULL)
은 정확하게 똑같은 일련의 난수가 연속적으로 나오지 않도록 시드 값을 빠르게 변경하지 않습니다.
다른 사람들이이 문제에 어떻게 접근했는지 궁금합니다. 온라인에서 찾은 모든 예제는 시드 값 생성기로 time(NULL)
을 사용합니다.
int generateRandom(int l, int u)
{
srand(time(NULL));
int r = rand() % ((u - l) + 1);
r = l + r;
return r;
}
내가 바로 옆에 서로 코드 줄을 실행했다면
, 모두Rand1
및
Rand2
정확히 같은 것이다.
printf("Rand1 = %d\n", generateRandom(10, 46));
printf("Rand2 = %d\n", generateRandom(10, 46));
어! 변수 이름을 단순한 꾸밈없는'l '이라고하지 마십시오! 'lb','lower','lowerbound'를 선호합니다 ... – pmg