티스토리 뷰

난수생성 방법에 대해 알아보겠습니다.

 

코딩을 하다보면, 가끔 임의의 수가 필요할 때가 있습니다. 이러한 랜덤한 숫자를 난수라고 부릅니다. 난수를 이용한다면 실행할 때 마다 랜덤으로 바뀌는 숫자를 만들 수 있습니다.

 

rand() 함수만을 사용해서 난수를 생성한다면 완전한 난수가 생성되는게 아닌 것을 쉽게 알 수 있습니다. 이런 현상을 막기 위해서는 srand() 함수와 time() 함수를 통해서 시드값을 생성해 주어야합니다.

time(NULL)197011일 이후로 현재까지의 시간을 초 단위로 반환해주는 함수입니다.

간단한 예제를 통해 보도록 하겠습니다.

 

예제 코드:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/*         *C언어 난수생성*         */
 
#include <stdio.h>
#include <stdlib.h>  // rand() , srand()
#include <time.h>
 
#define MAX 100
 
int main()
{
 long seconds = (long)time(NULL);
 srand(seconds);
 
 /*1에서 100까지의 난수 생성*/
 printf("1 ~ %4d 사이의 난수 5개:\n", MAX);
 for (int i = 0; i < 5; i++)
  printf("%4d ", rand() %MAX + 1);
 puts("");
 
 /* 50에서 100까지의 난수 생성*/
 printf("50 ~ %4d 사이의 난수 5개:\n", MAX);
 for (int i = 0; i < 5; i++)
  printf("%4d ", rand() %(MAX-49+ 50);
 puts("");
 
 return 0;
}
 
cs


1부터 n까지의 난수를 발생시키려면

rand()%n +1 을 사용해주시면 되고

 

a부터 b까지 난수를 발생시키려면

rand()%(b-a+1) +a 를 입력해주시면 됩니다.



난수 생성하는 방법은 이처럼 간단하기 때문에 한번 익혀두면 좋습니다.




댓글
반응형
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함