Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C의 범위에서 난수 생성

<시간/>

여기서는 C를 사용하여 주어진 범위에서 난수를 생성하는 방법을 볼 것입니다. 이 문제를 해결하기 위해 srand() 함수를 사용할 것입니다. 현재 시간은 srad() 함수를 시드하는 데 사용됩니다.

이 함수는 임의의 범위에서 난수를 생성할 수 없으며 0에서 일부 값 사이의 숫자를 생성할 수 있습니다. 따라서 이를 위해서는 한 가지 트릭을 따라야 합니다. 0에서 (상한 – 하한 + 1) 사이의 난수를 생성한 다음 상쇄를 위한 하한을 추가합니다.

예시

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void generate_random(int l, int r, int count) { //this will generate random number in range l and r
   int i;
   for (i = 0; i < count; i++) {
      int rand_num = (rand() % (r - l + 1)) + l;
      printf("%d ", rand_num);
   }
}
main() {
   int lower = 10, upper = 15, count = 15;
   srand(time(0)); //current time as seed of random number generator
   generate_random(lower, upper, count);
   printf("\n");
}

출력

15 11 13 10 13 10 15 11 14 12 12 13 12 13 14