Nov
29
MAX 까지의 중복되지 않는 난수를 생성할때 이와 같은 방법을 사용한다.
cnt = MAX;
for (i = 0; i < MAX; i++)
n[i] = i;
for (j = 0; j < loop_cnt; j++) {
swap(n[rand() % cnt], n[--cnt]);
printf("%d", n[cnt]);
}
MAX 까지의 중복되지 않는 난수를 생성할때 이와 같은 방법을 사용한다.
cnt = MAX;
for (i = 0; i < MAX; i++)
n[i] = i;
for (j = 0; j < loop_cnt; j++) {
swap(n[rand() % cnt], n[--cnt]);
printf("%d", n[cnt]);
}
This site uses Akismet to reduce spam. Learn how your comment data is processed.
코드를 보다가 궁금한 것이 생겼습니다. 코드 중에서
for(j=0;j<loop_cnt;j++)이 있는데요 loop가 무슨 역할을 하는 지
모르겠습니다.;; 이 loop는 뭔가요?
간만에 보는 코드라 한참을 쳐다봤네요. -_-;;
간단히 섞고 싶은 크기라고 보시면 됩니다. loop_cnt 가 크면 클수록(But loop_cnt <= MAX) 랜덤하게 섞여질 확율이 높아지는 거죠.
for (i = 0; i < MAX; i++) { n[i] = i; } cnt = MAX; for (j = 0; j < MAX; j++) { swap(n[rand() % cnt], n[--cnt]); printf("%d", n[cnt]); }
라고 보시면 됩니다. 🙂