while반복문 공부하다가 또 다시 궁금한점이 있습니다.
, J Y님이 작성srand(time(NULL))을 빼고 출력하면 정해진값과 정해진 갯수가 나옵니다. 물론 제가 질문할 당시에만 정해진값과 정해진 갯수가 나왔을수도 있지만요.
제가 봤을때에는 rand() 함수때문에 srand(time(NULL))이 없어도 정해진값과 정해진 갯수가 나올수 없을거같아보였는데 srand(time(NULL))을 빼고 rand()함수를 돌리면 왜 정해진값과 정해진갯수가 나오는건지 궁금합니다,
Re: while반복문 공부하다가 또 다시 궁금한점이 있습니다.
, 도장_ 관리자님이 작성완벽한 난수(perfect random number) 생성은 수학적으로 어렵기 때문에 일반적으로는 완벽한 난수와 비슷한 난수를 생성합니다.
이를 유사 난수(pseudo random number)라고 합니다.
이 방식은 매우 긴 수열을 두고 숫자를 뽑아서 쓰는 것이므로 정해진 수열이 있습니다. 따라서 초깃값이 없으면 같은 수열에서 값을 가져오기 때문에 같은 값이 됩니다. 이 문제를 해결하기 위해 초깃값을 매번 다르게 주는 게 중요한데, 가장 일반적인 방법이 시간입니다.
따라서 시간을 초깃값으로 지정해주지 않으면 항상 같은 값이 나오게 됩니다.