일반적으로 0 과 n 사이의 난수를 구하는 공식으로 rand() 함수를 이용 하여
rand() % n; 을 주로 이용 한다.
그런데 이 때 구해지는 수는 정수 일 수 밖에 없다. % 는 나머지를 구하는 식이기 때문이다.
그런데 float형이나 double형의 부동 소수점이 필요한 경우가 많이 있다.
이럴 경우는 (double)rand() * (double)n / ((double)(RAND_MAX)+(double)(1)) 을 하면 된다.
이 때 RAND_MAX 값은 stdlib.h에 정의 되어 있는 값으로 rand() 함수에 의해 반환 될 수 있는 값의 최대 값이다.
'Programming > C/C++/CS' 카테고리의 다른 글
파일 병합 프로그램 (2) | 2013.07.28 |
---|---|
sublime text2에서 c, c++ 코드 작성 후 컴파일 하기 (1) | 2013.01.29 |
지역 변수 또는 임시 변수의 주소를 반환하고 있습니다. (0) | 2013.01.29 |
헤더 파일이 서로 참조 될 때 (0) | 2013.01.29 |