• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

9:56 getRandomNumber 함수 질문

23.03.20 17:14 작성 조회수 418

1

getRandomNumber 함수를 보면,

int getRandomNumber(int min, int max){

const double fraction = 1.0/(RAND_MAX +1.0);

return min+static_case<int>((max-min+1)*(rand()*fraction));

}

 

으로 구현하셨는데요. 여기서 rand의 seed를 time을 이용해 바꾸지 않았으니 매번 실행할 때마다 같은 seed가 들어가서 같은 결과가 나올테니, getRandomNumber함수도 매번 실행할 때마다 같은 값이 나오게 될 것 같은데 맞나요?

답변 1

답변을 작성해보세요.

2

Soobak님의 프로필

Soobak

2023.03.20

안녕하세요, 답변 도우미 Soobak 입니다. 😀

해당 강의의 9:56 부분에 대한 질문이시군요!!! 😁

질문1. 여기서 rand의 seed를 time을 이용해 바꾸지 않았으니 매번 실행할 때마다 같은 seed가 들어가서 같은 결과가 나올테니, getRandomNumber함수도 매번 실행할 때마다 같은 값이 나오게 될 것 같은데 맞나요?
: 네 맞습니다. 👍👍👍 해당 강의의 7:08 부분에서 "Debug 과정 시 seed 를 고정하는 것에 대한 장점"을 소개해주시면서 seed를 5323 으로 고정하셨으며, 말씀하신 강의 9:01 부분에서 15번째 코드 라인을 보시면 여전히 seed가 5323 으로 고정되어 있기 때문에, 매번 실행할 때마다 같은 seed로 rand() 함수가 호출되고, getRandomNumber() 함수도 같은 랜덤 값을 반환하게 됩니다.

스스로 궁금증을 갖으시면서 학습하시는 모습이 참 멋있으시고, 덕분에 답변하는 저도 참 뿌듯하네요.

또 궁금하신 점 있으시면 언제든지 편하게 질문 남겨주세요! 감사합니다. 😁👍