- 랜덤한 숫자를 가져오는 기능은 프로그램 개발에서 매우 자주 사용되는 기능임
- 따라서, javascript는 built-in 함수로 포함되어 있음(Math.random())
function makeRandom(min, max){
var RandVal = Math.floor(Math.random()*(max-min+1)) + min;
return RandVal;
}
// 랜덤 함수(정수)
내 방식대로 이해해보기
- 예를 들어 생각해보자,
"90 에서 35 사이의 랜덤 숫자를 뽑는 경우"를 가정해보자
여기서 어떤 숫자를 곱하면 그 만큼 최대 값이 커진다.
예시의 경우 최대값이 90이므로 90을 곱해보자.
시작값이 최소값이어야 하므로, 최대값까지의 범위에서, 최소 값까지의 범위를 빼면, 사이 범위의 값(범위)로 한정할 수 있다. (빨간색 선분 범위만 남는다. 실제 선택되는 랜덤 수는 이 영역에서의 어느 한 수이다.)
이걸 식으로 표현하면,
Math.random()90 - Math.random() 35가 된다.
여기서 문제가 하나 발생한다. 범위의 크기는 맞는데, 출발점이 0이다.
따라서, 출발점을 최소값으로 바꿔줘야, 선택되는 랜덤 수는 항상 최소값 이상이 된다. 식으로 표현하면, 3번 식에서 최소값인 35를 더해줘야 한다.
최종 정리 함수 식은
Math.random()*(90 - 35 ) + 35 가 된다.
이것을 일반형으로 수정하면, 앞서 언급한 위의 코드가 된다.