최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday

티스토리 뷰

   랜덤함수


Math.random() 함수는 0 에서 1미만의 난수를 발생시킨다.


여기에서 0에서 1미만의 난수란 다음과 같은 의미.

 

0.0000000000000  ~ 0.99999999999999999 (소숫점 15자리까지)로 이해하면 알맞다.


확인을 위해 Math.random() 자체를 출력 해보면

<!DOCTYPE HTML>
<html lang="ko">
<head>
<title> NewDocument </title>
<meta charset="utf-8">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
</head>
<body>
	<script>
		var ran = Math.random();
		document.write(ran);
	</script>
</body>
</html>

결과는 0.630697344429791

 

따라서 Math.random * Num 을 하면 최대 맥시멈이 0.9999... 이므로 Num을 포함하지 않는 실수형 숫자 데이터를 반환하게 된다.




   랜덤함수와 같이쓰는 Math 메서드


위와 같은 조건(실수형, 최대치가 0,9)으로 인해 독립적으로 쓰인다기 보다 다른 Math.메서드와 같이 사용되는게 대부분이다.


Math.ceil : 올림 ( 0.9 -> 1 )


Math.round : 반올림 ( 0.5 -> 1)


Math.floor : 내림 ( 0.7 -> 0 )


이 중에서 보통 floor를 쓰는게 보편적이다. round를 쓸 경우 0과 1이 나올 수 있는 확률이 절반으로 줄어들기 때문이다.

 

아래 두 문장은 역시 num을 포함하지 않는다.

 

var n1 = Math.random() * num; //실수형

var n2 = Math.floor(Math.random() * num); //내림 정수형

 



   공식화 (자바스크립트)


1.max를 포함하지 않는 함수. (물론 결과값이 실수형 : '3.123123123123..' 으로 나온다.)


function randomize($min, $max){
return Math.random() * ($max - $min) + $min;
}

 

2.max를 포함하는 함수 ( floor로 내림처리를 하였으므로 intiger 형 : '2' 로 출력된다. )

function randomize($min, $max){
return Math.floor(Math.random() * ($max - $min + 1)) + $min;
}

 

'■ 개발관련 ■ > 산수와 알고리즘' 카테고리의 다른 글

재귀함수  (0) 2013.11.15
소수찾기  (0) 2013.11.15
조건문에서 else 블록없을 경우  (0) 2013.11.01
배열의 최소,최대  (0) 2013.10.28
반복문에서 홀수,짝수,배수 표현  (0) 2013.10.28
댓글