반응형
1. rand()
- C 언어 <stdlib.h> / C++ <cstdlib>
- [0 ~ RAND_MAX] 사이의 랜덤한 숫자를 반환한다.
- 만약 범위를 조절하고 싶다면? %연산자를 이용한다. %: 나누었을때 나머지
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
rand() %10 // [0 ~ 9]
rand() %100 // [0 ~ 99]
rand() %1000 // [0 ~ 999]
...
RAND_MAX를 10으로 나눈 나머지라고 생각해보면 간단하다
[0~9]의 값을 반환한다.
- rand()값은 정확히 말해서 난수를 발생시키는 것이 아니라 내부에 저장된 난수표에서 seed값에 따라 단수를 뽑아 오는 것 뿐이다. 기본적으로 seed는 1이다.
- 이를 해결하기 위하여 아래의 함수를 사용한다.
2. srand(seed)
- C 언어 <stdlib.h> / C++ <cstdlib>
- seed를 통하여 난수를 초기화시킬 수 있는 것이다.
- 프로그램을 실행시킬 때마다 time을 이용하여 seed값을 갱신시켜서 난수를 만들 수 있다.
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
// seed값으로 현재의 시간(초)를 입력한다.
srand((unsigned int)time(0));
rand() %10 // [0 ~ 9]
rand() %100 // [0 ~ 99]
rand() %1000 // [0 ~ 999]
...
참고
https://mrw0119.tistory.com/57
https://blockdmask.tistory.com/308
사진
반응형
'컴퓨터 언어 > C\C++' 카테고리의 다른 글
[c 언어] fputs 함수란. (0) | 2020.04.04 |
---|---|
[c 언어] 배열에 원소 값 삽입하기 ( memmove() 이용하기 ) (0) | 2020.04.03 |
[c언어] fprintf(stderr, "error!"); 에 대하여. (0) | 2020.04.02 |
[C 언어] pointer 이용해서 함수 구현하기(pythagoras, 원의 면적) (0) | 2020.03.16 |
[C 언어] 포인터 (pointer) 무엇인가? , 제대로 알자. (0) | 2020.03.16 |