더북(TheBook)

난수 구하기

Math 객체의 random() 메서드는 0 이상 1 미만의 난수를 반환합니다. 따라서 같은 코드라도 실행할 때마다 값이 달라집니다.

11/03/math/random.js

const random = Math.random();
console.log(random); // 0.2982742766551536(실행할 때마다 달라짐)

random() 메서드는 0 이상 1 미만의 난수를 반환하는데, 그 이상의 난수를 구하고 싶을 땐 어떻게 할까요? 이럴 땐 주어진 숫자를 내림해서 정수를 반환하는 floor() 메서드를 추가해 난수의 범위를 늘릴 수 있습니다. 예를 들어, 난수 범위를 0 이상 20 이하의 정수로 바꾸고 싶다고 합시다. 0.999라는 수가 나왔을 때 여기에 20을 곱하면 19.98이 됩니다. 여기에 다시 floor() 메서드를 사용하면 19가 나옵니다.

11/03/math/getMaxRandom.js

function getMaxRandom(max){
  return Math.floor(Math.random() * max) + 1;
}
const maxRandom = getMaxRandom(20); 
console.log(maxRandom); // 0 이상 20 이하의 무작위 정수
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.