압축풀어서 보셈
첫번째 printf(\"%d\\n\",rand()%100+1);는 단지 시간에 따라서 늘어나는 값이고
두번째 printf(\"%d\\n\",rand()%100+1);는 정상으로 나오는게 이해가 안됨
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
time_t t;
srand(time_t(time(&t)));
printf(\"%d\\n\",time(NULL));
printf(\"%d\\n\",time_t(time(&t)));
printf(\"%d\\n\",rand()%100+1);
printf(\"%d\\n\",rand()%100+1);
getchar();
}
그러내 왜그러지
c, c++가 완전 랜덤이 아니어서 그런게 아닐까. 현재 시간을 seed로 사용하니까 처음 사용되는 rand() 값은 조금씩 증가하는거고. 어차피 실질적으로는 이게 큰 문제가 안되는게 어차피 시간은 랜덤이잖아? 그리고 한 프로그램에서는 seed를 한번만 쓰고 그 다음부터는 계속해서 rand()를 부르니까 아무 문제가 없겠지?
시간이 랜덤이라는 말을 정정하자면 사용자가 이 프로그램을 실행하는 시간은 %100같은 연산을 거쳤을때 거의 랜덤이라는거지.
ㅇㅇ 이해했음 srand와 rand 함수의 내부 구현에 따른 당연한 현상이었네