|
확실하게는 본적 없지만, 아래와 같이 구현한다면 어떠실지..
int __fastcall TForm1::GetRandom(int itStartValue, int itEndValue)
{
int itTag = GetTickCount(), itValue;
itValue = ((itStartValue) + (itTag % (((itEndValue) == 0 ? 1 : (itEndValue)) * 10 - (itStartValue) * 10 + 10)) / 10);
return(itValue);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Memo1->Lines->Add(GetRandom(10, 20));
}
//---------------------------------------------------------------------------
*10 을 해준 이유는, GetTickCount가 정확한 1/1000 값이 나오지 않기 때문이고, 0인지 비교를 하는 이유는, 0의 나머지를 구할때 에러를 나는 것을 방지하기 위해서 입니다.
아담 님이 쓰신 글 :
: 랜덤하게 수 를 발생하는 함수의 내부 알고리즘이 궁금하군요.
:
: 이함수의 내부는 어떤 알고리즘으로 랜덤한수가 발생하는지
:
: 아시는분 답변부탁드립니다...^^
:
: 즐거운 하루되시길.
:
:
|