Programming/C/C++/CS
[0,n) 사이의 부동소수점 수 난수 구하기
알수없는영역
2013. 1. 30. 21:08
일반적으로 0 과 n 사이의 난수를 구하는 공식으로 rand() 함수를 이용 하여
rand() % n; 을 주로 이용 한다.
그런데 이 때 구해지는 수는 정수 일 수 밖에 없다. % 는 나머지를 구하는 식이기 때문이다.
그런데 float형이나 double형의 부동 소수점이 필요한 경우가 많이 있다.
이럴 경우는 (double)rand() * (double)n / ((double)(RAND_MAX)+(double)(1)) 을 하면 된다.
이 때 RAND_MAX 값은 stdlib.h에 정의 되어 있는 값으로 rand() 함수에 의해 반환 될 수 있는 값의 최대 값이다.