티스토리 뷰
Programming Language/C basic
[C언어] CHAPTER 08 함수 / 실행할 때마다 발생되는 난수 다르게 하기 (시드 사용)
또야 2021. 4. 3. 01:25반응형
일반적인 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)
반응형
'Programming Language > C basic' 카테고리의 다른 글
[C언어] CHAPTER 08 함수 / Programming 04 / 윤년 구하기 (0) | 2021.04.04 |
---|---|
[C언어] CHAPTER 08 함수 / 동전 던지기 게임 (앞면이 나온 횟수와 뒷면이 나온 횟수 출력하기) (0) | 2021.04.03 |
[C언어] CHAPTER 07 반복문 / Programming 14 / 사용자가 입력한 정수 거꾸로 출력하기 (0) | 2021.03.29 |
[C언어] CHAPTER 07 반복문 / Programming 12 / 피보나치 수열 (0) | 2021.03.27 |
[C언어] CHAPTER 07 반복문 / Programming 07 / 2와 100 사이에 있는 모든 소수를 찾는 프로그램 (0) | 2021.03.27 |
댓글
반응형
Recent Post.
Recent Reply.
- Thanks for comming.
- 오늘은
- 명이 방문했어요
- 어제는
- 명이 방문했어요