Math.random()
으로는 내가 원하는 범위의 랜덤수를 얻을 수가 없습니다.function getRandomNumber (min, max) {
return Math.floor(Math.random()*(max-min) + min)
}
처음에 최소값을 어떻게 정할 수 있지 생각했다..
Math.floor( Math.random() * 10 )
: 0~10
Math.floor( Math.random() * 100 )
: 0~100
Math.random()은 항상 0부터 시작하는 랜덤숫자이기 때문에 그냥 뒤에 최소값을 더하면 되는거였다.
그렇다면
Math.floor( Math.random() * 100 + 10)
0(+10)~100(+10) 사이의 값이 나왔다. 10에서 110 까지의 범위가 나오니까 최대값범위에서 최소값만큼 빼서 10~100으로 맞췄다.
따라서
Math.floor(Math.random() * (max-min) + min)
로 작성하고 테스트를 눌렀는데 실패가 나왔다
빨간 글씨 너무 무섭다🥲
1 <= random <= 10
(Math.random() * 10) + 1
최소값을 지정하고 싶을 때는 Math.random() (max - min + 1) 값을 계산하고, 소수점 이하를 버림합니다. 그리고, min 값을 더해줍니다.
1~10 범위의 정수 난수를 계산하기 위해서 아래와 같이 계산하였습니다.
Math.floor(Math.random() (10 -1 + 1)) + 1
= Math.floor(Math.random() * 10) + 1
라고 적혀있었는데 max-min을 곱하고 왜 +1 을 하는지 이해할 수 없었다.
오늘도 완영님께 여쭤봤다. (god...)
Math.random()x10을 하면 0~9의 랜덤한 숫자가 나온다.
근데 우리가 원하는 건 0~10사이의 숫자면 10을 포함시켜서 나와야 하기 때문에 +1을 해줘야한다!
function getRandomNumber (min, max) {
return Math.floor(Math.random()*(max-min+1) + min)
}
// 아래 코드는 절대 수정하지 마세요.
module.exports = {getRandomNumber};
완료!! ✨ (초록색이 좋아질 것 같다🤩)
주영님 화이팅~! 🔥