(자바스크립트) 조건에 따른 임의의 숫자 만들기

(자바스크립트) 조건에 따른 임의의 숫자 만들기

안녕하세요. 오늘은 학습한 내용 중 자바스크립트로 임의의 숫자를 만드는 방법을 정리해 보고자 합니다.  

목차 - 한 자리의 임의의 자연수 만들기 - 주어진 범위 내에서의 임의의 수 만들기  

- 한 자리의 임의의 자연수 만들기 먼저, 한 자릿수의 숫자를 임의를 만들기 위해서 자바스크립트의 내장 객체인 Math의 radom메소드를 사용할 수 있습니다. Math.random() 메소드는 0을 포함하며 1보다 작은 임의의 소수를 반환해 줍니다.

반환받은 소수를 자연수로 만들기 위해서는 Math객체의 또다른 Method인 ceil이나 floor, round를 사용할 수 있습니다. ceil은 올림할 때, floor는 내림, round는 반올림 할 때 사용할 수 있습니다.

Math.random(); // => 임의의 수 반환 ex) 0.23432423
Math.ceil(Math.random()); // => 반환 받은 소수를 올림하여 결과값은 1이 된다.
Math.round(Math.random()); // => 소수를 반올림 후 0 or 1을 반환함.

이제 이 수를 가지고 1부터 9까지의 수 중 임의의 수를 추출해 보도록 하겠습니다.

  1. 우선 Math.random()의 수에 곱하기 10을 합니다. 그러면 0이상 10 미만의 소수점을 포함한 임의의 수를 반환받습니다.
  2. 이 수에 Math.ceil을 적용하면 1부터 10사이의 임의의 수를 얻을 수 있습니다.
  3. '1)'의 수에 Math.floor를 적용하면 0부터 9사이 임의의 수를 얻을 수 있습니다.
Math.ceil(Math.random() * 10); // 1 ~ 10 중 임의의 수
Math.floor(Math.random() * 10); // 0 ~ 9 중 임의의 수

  - 주어진 범위 내에서의 임의의 수 만들기 이번에는 범위가 주어졌을 때, 그 범위에 만족하는 임의의 수를 추출해 보도록 하겠습니다.

  1. Math.random 메서드에 주어진 수 중 큰 수와 작은 수의 차를 곱해줍니다.
  2. 위에서 산출한 '1)'의 수에 범위의 수에서 낮은 수를 더해줍니다.
  3. '3'의 수에 Math.floor method를 적용합니다.
//최소값 포함 최대값 미포함
var minNumber = 5;
var maxNumer = 15;

Math.random() * (maxNumber - minNumber) + minNumber;
// 최소값이 5이상이 되어야 하므로 'maxNumber - minNumber'의 수에 최소값 5를 더합니다. 그러면 최소 5이상 최대 15미만의 수를 반환 받습니다.

Math.floor(Math.random() * (maxNumber - minNumber) + minNumber);
// 내림을 해줌으로써 5이상 15미만의 임의의 수를 반환 합니다.

//최소값 포함 최대값 포함
Math.ceil(Math.random() * (maxNumber - minNumber - 1) + minNumber);
/* or */
Math.floor(Math.random() * (maxNumber - minNumber + 1) + minNumber);

저는 학습한 내용을 포스팅하며 재정리하는 입장이기 때문에, 지나가며 이 글을 보고 이상한 점이나 혹은 다른 조언해 주실 사항 코멘트로 달아주시면 감사하겠습니다.