Math.radom();

SANGKU OH·2020년 7월 22일
0
post-thumbnail

Math.radom();

0 ~ 1사이의 난수를 무작위로 생성합니다.
난수의 범위 지정은 곱하기 * 기호와 더하기 + 기호로 최대값과 최소값을 지정할 수 있습니다.
소숫점을 절삭하고 정수로 난수를 추출하는 방법은 Math.floor() 객체를 같이 사용하면 됩니다.

최대값 지정: *

초기 범위인 0 ~ 1이 아닌 최대 범위를 조절하려면 어떻게 해야할까요?
곱하기 * 기호를 사용하면 됩니다. 왜냐하면 난수의 범위 시작이 0이므로 0에는 어떤 수를 곱해도 0이기 때문입니다. 따라서 최대값인 1에만 원하는 최대 범위를 곱하면 됩니다.

최대값 설정은 Math.random()에 원하는 최대값을 곱해주면 됩니다.

Math.random() * 최대값

최대값을 0부터 10으로 설정하려면 10을 곱해줍니다.

Math.random() * 10

최대값이 10이하로 설정되어 3.xxx의 난수가 생성되었습니다.

3.6878079985331946

최소값 지정: +

최소값을 지정할 경우 아래처럼 약간의 수식 수정이 필요합니다.

( Math.random() * ( 최대값 - 최소값 ) ) + 최소값

왜 최소값은 최대값을 동시에 지정해야 할까?

최소값은 + 더하기 기호로 원하는 최소값을 더해줍니다.
그런데 최대값과 달리 최소값을 더하기로 들어가기 때문에 최대값도 동시에 변하게 됩니다.
따라서 최소값을 지정할 때에는 최대값에도 피해가 가지 않도록 셋팅이 필요합니다.

0 ~ 1 → 양변에 10을 곱하면, 0 ~ 10으로 최대값만 변함
0 ~ 1 → 양변에 1을 더하면, 1 ~ 2로 최소값과 최대값이 모두 변함

일반적인 최대값

최대값을 10으로 변경해보겠습니다.

Math.random() * 10

현재 난수의 생성범위는 0 ~ 10 사이입니다.

최소값만 지정시 문제점

두번재로 최소값을 1로 변경하려면 어떻게 해야 할까?
해당 수식에 +1을 더하면 난수의 생성범위는 1 ~ 11이 됩니다.

( Math.random() * 10 ) + 1

이런 식으로 10.xx와 같이 10이상의 값이 나오게 됩니다.

10.800218977628962

최소값 + 최대값 동시 지정

이를 방지하려면, 최대값 설정시 최대값에서 최소값을 빼버린 값을 대입하면 됩니다.

( Math.random () * (최대값 - 최소값) ) + 최소값

10에서 1을 뺀 값을 최대값에 대입하고, 최소값은 전체에서 더해주면 됩니다.

( Math.random() * (10 - 1) ) + 1

이럴 경우 최대값이 10미만의 숫자가 나오므로 10이 넘을 수 없습니다.

9.435629400190384

rel(http://bitly.kr/A8UMJdxRNf7)

profile
Prof.Google을 통해 필요한 정보를 이 곳에 insert 🐸

0개의 댓글