[완료]랜덤함수 생성하는 것 관련입니다
글쓴이: lang / 작성시간: 토, 2007/11/17 - 9:25오후
메인안에
srand((unsigned)time(0));
int i = rand();
이런 식으로 생성을 하면 시간변화에 따라 생성되는 것이 실행할때마다 달라지더라구요
정확한 동작방식은 모르지만 말입니다.
그런데 이것을 함수로 선언해서 int를 리턴하도록 저 두가지 문을 넣으니까
처음 실행 한번은 되지만 그 이후부터는 같은 값을 리턴합니다
int ranInt()
{
srand((unsigned)time(0));
return rand();
}
이런 식으로 하면 말이죠.
왜 변화가 생기는지 몰르겠네요. 정확히 srand함수가 어떤방식으로 된건지 설명해주실분 계신가요?
감사합니다.
Forums:
srand()는 처음에 한번
srand()는 처음에 한번 실행 하시고 아래와 같이 하세요
제가 알기로는 srand 부른 후 일정 패턴으로 랜덤값을 생성하는데
srand 이후로 바로 rand 불러서 같은 값이 나오는 걸로 알고 있습니다.
ㅇㅇ;;
그 코드가... 그냥 rand()와 다른 점이 뭐죠?
제가 보기엔 똑같아 보이는데...
소스 코드
일반적인 rand()와 srand() 구현 예시입니다.
srand()는 rand()함수의 초기값을 결정해줍니다. 그래서 time()함수가 같은 값을 리턴하는 동안은 rand()도 같은 값을 리턴하게 된 것입니다.
답변감사합니다!!
이제 좀 이해되는것같습니다^^
댓글 달기