티스토리 뷰

반응형

일반적인 rand() 함수만 쓰면

프로그램이 다시 실행돼도

같은 난수가 출력된다.

진정한 난수가 아닌 셈이다.

 

그러므로

실행할 때마다 난수가

다르게 발생하게 하기 위해서

난수의 시드를 설정한다.

 

<time.h> 헤더 파일을 불러와

현재의 시각을 시드로 사용한다.

현재 시각은 실행할 때마다

달라지기 때문이다.

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
#define MAX 45
 
int main(void)
{
    int i;
 
    srand((unsigned)time(NULL));
 
    for (i = 0; i < 6; i++)
        printf("%d ",    1 + rand() % MAX);
    printf("%\n");
 
    return 0;
}
 
cs

 

 

  - 설명  

line 11 :

현재 시각을 시드로 설정하여

실행할 때마다 다른 난수를 생성한다.

 

line 13-14 :

rand() % 45(MAX)는

0부터 44의 수이다.

45로 나눈 나머지는

45 이상이 될 수 없기 때문이다.

 

그러므로 1 + rand() % 45를

6번 반복하여

1부터 45까지의 난수를

6개 생성한다.

 

실행할 때마다 다른 수임을

확인 가능하다.

 

 

 

  - 결과  

 

(1)

 

(2)

 

(3)

반응형
댓글
반응형
Recent Post.
Recent Reply.
Thanks for comming.
오늘은
명이 방문했어요
어제는
명이 방문했어요