-
의사난수, pseudorandomDEV/Javascript 2015. 9. 28. 22:30
헤드퍼스트 자바스크립트를 읽던 도중에, 471페이지에서 Math객체가 random()메소드를 통해 만들어내는
난수들이 실제로는 무작위적이지 않다고 고백하는 Math의 인터뷰를 읽고 신기해서 관련 글을 구글링해보았다.
이를 의사난수(pseudorandom)이라고 한다.
PC에서 난수를 만들 때에는, 컴퓨터의 현재 시각을 씨앗값으로 삼고 그 씨앗값을 수학적 알고리즘에 넣어서 난수를 생성합니다.
따라서 컴퓨터 시계를 과거로 정확히 돌리면 똑같은 난수가 만들어지기에 진정한 의미의 난수라고 볼 수는 없습니다.유닉스를 사용하는 대형컴퓨터에는 난수를 생성하는 별도의 하드웨어가 있어서 진짜 난수를 만들 수 있습니다.
보안이 중요한 곳에서는 진짜 난수를 사용해야겠지만 보통의 경우에는 PC의 의사난수로도 충분합니다.출처: http://mwultong.blogspot.com/2008/03/pseudo-random-uniform-random-number.html
w3Schools에 따르면 자바스크립트에서 random() 메소드를 사용해서 생성되는 난수에는
0은 포함되지만 1은 포함되지 않는다고 한다.
The random() method returns a random number from 0 (inclusive) up to but not including 1 (exclusive).
책에서는 난수에 대해 더 자세히 알아보고 싶은 사람을 위한 사이트 안내도 있다. 의사난수가 아닌 정말 난수(..)를 생성해준다.