#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;
}