[Pre-course] Number reple 문제

yoonee·2021년 10월 12일
0

JavaScript

목록 보기
3/8
post-thumbnail

수학객체

다른 객체와 달리 Math 객체에는 생성자가 없다.
Math 개체를 먼저 생성하지 않고도 모든 메서드와 속성을 사용할 수 있습니다. -> Math.method.(number)

숫자를 정수로 반올림하는 방법

  • Math.round(x), Math.ceil(x) : 가장 가까운 정수로 반올림된 x를 반환.
Math.round(4.9);    // returns 5
Math.round(4.7);    // returns 5
Math.round(4.4);    // returns 4
Math.round(4.2);    // returns 4
Math.round(-4.2);    // returns -4
  • Math.floor(x) 가장 가까운 정수로 내림한 x를 반환.
Math.floor(4.9);    // returns 4
Math.floor(4.7);    // returns 4
Math.floor(4.4);    // returns 4
Math.floor(4.2);    // returns 4
Math.floor(-4.2);    // returns -5
  • Math.trunc(x) x의 정수 부분을 반환( ES6의 새로운 기능 )
Math.trunc(4.9);    // returns 4
Math.trunc(4.7);    // returns 4
Math.trunc(4.4);    // returns 4
Math.trunc(4.2);    // returns 4
Math.trunc(-4.2);    // returns -4

랜덤함수

  • Math.random() 0(포함)과 1(제외) 사이의 난수를 반환.
    (0.0000000000000000 ~ 0.9999999999999999 )
var randomNumber = Math.random();
console.log(Math.floor(randomNumber*10));
//0.000~9.999 를 Math.floor 를 사용하여 0~9까지의 랜덤수를 구할 수 있다.

Assignment

최소(min), 최대값(max)을 받아 그 사이의 랜덤수를 return 하는 함수를 구현해주세요.
함수는 짧지만, 이번에는 수학의 뇌를 조금 써야 하는 assignment 입니다. 🙌
앞으로 랜덤함수를 쓸 일이 정말 많습니다.
그런데 Math.random() 으로는 내가 원하는 범위의 랜덤수를 얻을 수가 없습니다.
항상 0.0000000000000000에서 0.9999999999999999 사이 값만 return 해주기 때문이죠.

정답

function getRandomNumber (min, max){
  return Math.random() * (max - min) + min
}
  • (max - min) 은 범위를 정해주는 것이다.
    예를들어 min=2 max=5 일때, 2~5까지의 범위에서 랜덤수를 고른다는것이다. (0.0000~2.9999) 까지의 랜덤 수.
  • + min 최소값보다 크게 해 주기위해 더해준다.
    (2.9999~4.9999)

max 포함 정수를 반환 할 때

function getRandomNumber (min, max){
  return Math.floor(Math.random() * (max - min +1) + min)
}
  • (max - min +1) + min
    똑같은 코드에서 +1을 해주어 포함되지 않던 max값까지 포함 해 주었다. Math.random 은 0~1(1제외) 난수 이기 때문이다.
  • Math.floor 을 사용하여 정수로 반내림 해 주었다.

0개의 댓글