[c++] random값 생성 (rand, srand)

숭글·2022년 12월 22일
0

#include <cstdlib>

int rand (void);

0부터 RAND_MAX까지의 값 중 하나를 리턴한다.
RAND_MAX는 라이브러리에 따라 다르지만 최소 32767의 값을 가진다.
(라이브러리에 define되어있으니 확인해보면 된다!)

random값은 설정된 seed에 따라서 값을 만들어내는데 seed값을 설정하는 srand()는 초기에 1로 초기화되기 때문에 항상 같은 값이 리턴된다.

#include <cstdlib>
#include <iostream>

int main(){
	std::cout << rand() << std::endl;
	std::cout << rand() << std::endl;
	std::cout << rand() << std::endl;

	srand(1);

	std::cout << rand() << std::endl;
	std::cout << rand() << std::endl;
	std::cout << rand() << std::endl;

	srand(1);

	std::cout << rand() << std::endl;
	std::cout << rand() << std::endl;
	std::cout << rand() << std::endl;
}


___________________________
output>

16807
282475249
1622650073
16807
282475249
1622650073
16807
282475249
1622650073

void srand (unsigned int seed);

srand() 함수를 이용해 seed를 변경할 수 있다.
계속 변경하는 time을 이용하면 실행할 때마다 다른 값을 받을 수 있다.

#include <cstdlib>
#include <ctime>
#include <iostream>

int main(){
	srand (time(NULL));

if (rand() % 2)	{
		std::cout << " Success! " << std::endl;
		return ;
	}
	std::cout << " Fail! " << std::endl;
}

📖 rand
📖 srand

profile
Hi!😁 I'm Soongle. Welcome to my Velog!!!

0개의 댓글