티스토리 뷰

C C++/C++

[C++] 난수 생성 - rand(), srand()

개발하는꼬물이 2018. 5. 4. 10:32

1. 헤더파일

  - #include <ctime> : srand()의 인자로 사용되는 time 함수를 사용하기 위함

  - #include <cstdlib> : rand(), srand() 함수 사용을 위함


2. srand()

  - 호출할 때 전달받는 인자를 기반으로 난수를 초기화하는 함수

  - time(NULL) : 1970년 1월 1일 0시 (TimeZone : UTC) 이후부터 인자값까지 현재까지 흐른 초 수를 리턴해 줌

  - srand 함수의 인자로 time(NULL)을 넘긴 후 rand 함수를 호출하면, 시간을 기준으로 초기화되는 난수를 생성할 수 있어

    프로그램을 실행할 때 마다 다른 난수 값을 얻을 수 있음


3. rand()

  - srand()로 인해 생성된 갓을 바탕으로 난수를 생성하는 함수

  - 생성되는 난수의 범위를 지정하는 방법

    1) rand() % (마지막 값 - 시작 값 + 1) + 시작 값


4. 예제

#include <iostream> #include <cstdlib> #include <ctime> using namespace std; int main() { srand(time(NULL)); // 매 실행시마다 다른 값 출력 for (int i = 0; i < 10; i++) { int a = rand() % 8 + 5; // 5 - 12 범위의 난수 생성 cout << a << " "; } cout << endl; return 0; }



5. 실행 결과

6 13 7 8 10 7 10 9 12 8

'C C++ > C++' 카테고리의 다른 글

[C++] 비트 구조체  (0) 2018.05.18
Linux 환경에서의 pthread  (0) 2018.02.17
[C++] SingleTon Pattern  (0) 2018.02.17
[C++] this  (0) 2018.02.17
[C++] \n과 \r의 차이  (0) 2017.12.06
댓글