안녕하세요. 허언증입니다.
Rand() 함수는 난수를 발생 시킵니다.
난수는 seed 값에 따라 난수 값을 출력합니다
기본 seed값은 1로 설정되어 있고
1을 바꾸면 다른 기준으로 난수를 발생합니다.
다시 실행을 하더라도 저 값을 항상 출력합니다.
41
18467
6334
26500
19169
seed가 1기 때문이죠
그럼 이번엔 srand()함수를 이용해 seed값을 바꾸도록 하겠습니다.
*time() 함수를 이용해서 시간으로 랜덤하게 부여함.
srand() 함수로 난수를 지정 후 출력을 하면 고정값이 아닌
매번 다른 값으로 출력 하는걸 볼 수 있습니다.
DEV++ 인경우 #include<stdlib.h>를 적어 줘야합니다.
비쥬얼스튜디오는 생략 가능하고
time()함수를 사용하기위해
#include<ctime> 추가 해줘야 합니다.
srand() 범위
위 예제는 rand() 함수를 이용해서 특정 범위를 지정 안 했지만
따로 지정도 가능하다 바로 예시로!!
ex)
rand() % 5 라고 가정을 하면
rand()는 0 ~ 32367사이의 값이 랜덤으로 출력된다.
이때 % 5이기 때문에
0~32367 범위중 5로 나눈 나머지를 출력하게 되는데
결국 출력이 되는 범위는 0~4로 모든수가 나눠서 나머지로 출력이 된다.
만약 0을 출력하고 싶지 않다면
rand() % 5 +1 를 할 경우
rand() % 5 => 0~4 범위 하지만 +1를 했기때문에
범위는 1~5로 수정이 된다.
이렇게 자신이 특정 범위를 지정이 가능하다
예제.
rand() % 7 +1 =?
rand() / srand() 함수 예제
https://min-310.tistory.com/70
'# Language > [ C & C++ ]' 카테고리의 다른 글
[C & C++] inet_addr(), inet_aton(), inet_ntoa() (0) | 2019.12.03 |
---|---|
[C & C++] 포인터 정리 (0) | 2019.11.05 |
[C & C++] STL 반복자 iterator (0) | 2019.11.05 |
[C & C++] enum 열거형 (0) | 2019.11.05 |
[C & C++] 참조자(Reference)와 포인터(Pointer)의 차이 (0) | 2019.10.30 |