반응형
원문 : http://www.gpgstudy.com/forum/viewtopic.php?t=19568
1. rand() % 1000
2. rand() * 1000 / RAND_MAX
위의 경우 1번 보다는 2번의 연산이 더 정확한 분포를 보여준다. 그 이유는 다음과 같다.
1. rand() % 1000
2. rand() * 1000 / RAND_MAX
위의 경우 1번 보다는 2번의 연산이 더 정확한 분포를 보여준다. 그 이유는 다음과 같다.
따라서 Rand 함수를 이용하여 특정 범위의 수를 생성하려고 할 때 다음과 같이 프로그램을 작성해야 한다.RAND_MAX가 32767이라고 할 때 나머지가 0~767인 것은 33개, 768~999인 것은 32개입니다.
그럼 나머지가 0~767인 것은 10,000,000/32768*33 = 10070번,
768~999인 것은 10,000,000/32768*32 = 9765번쯤 나온다고 예측할 수 있습니다.
srand(time(NULL)); // Seed int nRange = 1000; // Range what you want (ex : 1000, 10000) int nGen = rand() * nRange / RAND_MAX;
반응형
'Game Dev > Article' 카테고리의 다른 글
정밀도가 높은 수행시간 측정 (0) | 2008.08.07 |
---|---|
Internal Reference Count (0) | 2008.08.06 |
가변 인수 전달 (0) | 2008.07.22 |
Shell Command List (0) | 2008.07.22 |