\

코딩/C++ 함수모음

C++ 랜덤함수 쓰기, 랜덤함수 범위 정하기

코딩하는 메추라기 2021. 6. 24. 10:18
반응형

안녕하세요 케일입니다.

오늘은 제가 C++로 랜덤함수를 쓰는 방법을 알려드리겠습니다.

C++ 랜덤기능을 사용하기 위해서는 헤더파일이 먼저 필요합니다.

요롷게 3개의 헤더파일이 필요합니다.

#include <iostream>
#include <stdlib.h>
#include <time.h>

설명을 달아주자면

<iostream>은 그냥 기본 헤더파일이고, <stdlib.h>에는 랜덤함수가 들어있습니다.

그리고 <time.h>에는 랜덤함수를 계속 다르게 하기 위한 함수가 들어있습니다. (밑에 보시면 이해할 거예요)

 

그래서

#include <iostream>
#include <stdib.h>
#include <time.h>

using namespace std;

int main() {
	int a = rand();
}

이렇게 하면 a에 랜덤값을 지정해 줄 수 있습니다.

 

그래서 cout으로 출력을 하면!!

#include <iostream>
#include <stdlib.h>
#include <time.h>

using namespace std;

int main() {
	int a = rand();
    
    cout<<a;
}

실행시켰더니 전 

이 나왔는데 다시하니

또 다시...

이거 랜덤 맞냐...... (사람마다 나오는 숫자는 다를 수 있음)

 

사실 랜덤함수는 사람이 미리 정해놓은 랜덤함수 판에서 숫자들을 불러오는 기능입니다.

그래가지고 여러가지 랜덤함수 판이 있어요.

근데 실행할 때마다 랜덤함수 판이 같다면 그게 랜덤함수가 아니겠죠?

그래서 실행해줄 때마다 랜덤함수 판을 바꿔줘야 합니다.

 

그래서 랜덤함수 판을 바꿔주는 기능

srand()가 필요합니다.

srand() 안에 들어가는 숫자에 따라 랜덤함수 판이 달라집니다.

srand() 에 들어가는 숫자가 실행할 때마다 달라야지 이제 정확한 랜덤이 되겠죠?

그래서 실행할 때마다 달라지는 수치가 있죠.

바로 시간입니다.

srand(time(NULL)) (꼭 대문자 해야합니다.)

이렇게 한다면 랜덤함수의 판을 시간값에 따라 달라지겠죠?

그래서 이제 다시 실행시키면

실행할 때마다 달라지는 걸 보실 수 있습니다.

 

근데 숫자가 너무 커보이죠?

 

저는 숫자 범위를 99까지 하고싶어요!! 라고 하면

이제 코드를 약간 바꿔줘야겠죠?

 

일단 코드의 정확성을 위해

배열을 사용해 여러 랜덤값을 지정해 봅시다.

int arr[10];

for(int i = 0; i < 10; i++) {
	arr[i] = rand() % 100;
    cout<<arr[i]<<"\n";
}

잘 나오는 걸 보실 수 있습니다.

 

저는 근데 범위를 100부터 200까지 하고 싶어요!

라고 하시는 분들은

 

그냥

int arr[10];

for (int i = 0; i < 10; i++) {
	arr[i] = (rand() % 101) + 100;
    cout<<arr[i]<<"\n"
}

요롷게 하시면 됩니다.

 

랜덤함수는 여로모로 쓸때가 많은 함수입니다.

랜덤함수는 쓸때가 많기 때문에 꼭 알아봐주셔야겠죠?

그래서 이번에는 랜덤함수를 알아보는 포스팅을 준비해 봤습니다.

다음에는 여러가지 수학 관련 함수들을 소개해 드리겠습니다.