rand() 함수는 의사난수 생성기이다.
srand()로 seeding후 rand()하면 된다지만,
연속해서 rand()를 호출하는 경우 거의 동일한 수가 나온다.
이는 srand()가 time()을 가지고 seeding하기 때문.
넷상 검색결과로는,
shell에서 PID를 취득하는 방법과,
jot 명령어를 사용하는 방법이 있다.
(각각을 -v 옵션 변수로 gawk로 넘겨준다.)
그러나,
srand() ---> rand() 호출시 거의 같은 값이 나오는 이유는
rand() 호출시 마다 srand()를 호출하기 때문이다.
해결책은 BEGIN에서 srand()를 한번만 호출 한 뒤에 rand()를 호출하면,
충분히 random한 수열을 얻을 수 있다.
댓글 없음:
댓글 쓰기