Programming/C/C++

Random double 값 추출하기

유기농코더 2011. 2. 10. 20:03
  • rand() 함수는 int 에 대해서만 값을 반환한다.

    ※ 일단 rand() 함수 자체는 초기에 완전 랜덤값을 반환하지 않는 문제가 있다고 하지만, 해당문제는 잠시 접어 두도록 한다.

       

  • rand() 함수는 아래와 같이 쓰인다.

    randomValue = rand() % imax + imin;

    imin < imax 를 만족해야 한다.

       

  • 구하고자 하는 형태는 double이다. 고로 최대치와 최소치가 있을 것이므로 아래와 같이 정의 한다.

    dmin < dmax

       

  • 비율의 문제이므로 아래와 같은 수식이 세워진다.

        

  • 구현

    double randN(const double &min, const double &max){
    	int randmax(1000), randmin(0);
    	int value = rand() % randmax + randmin; // randmin ~ randmax;
    
    	//비율문제니까...
    	return (double)value/(double)(randmax-randmin)*(max-min);
    }
    
    

 

생각 과정..ㅋㅋ