728x90
728x90
목 차
1. Math.random() 함수
- JavaScript의 Math.random() 함수는 0 이상 1 미만의 무작위 실수(float)를 반환하는 함수로, 난수 생성에 많이 사용됩니다.
- Math.random()은 정수나 특정 범위 내의 숫자를 바로 반환하지 않지만, 이를 활용하여 다양한 범위의 난수를 얻을 수 있습니다.
- Math.random() 함수란 0 <= n < 1 범위의 무작위 실수값입니다.
2. 기본 문법
- 0 이상 1 미만의 무작위 실수값이 반환되는 예제입니다.
console.log(Math.random()); // 예: 0.12345678910111213
console.log(Math.random()); // 예: 0.9876543210987654
3. 특정 범위에서 난수 생성하기
3-1. 특정 범위의 실수 구하기 (float)
- 5 이상 10 미만의 실수를 구하는 예제입니다.
function getRandomInRange(min, max) {
return Math.random() * (max - min) + min;
}
console.log(getRandomInRange(5, 10)); // 출력 : 7.34948523
예제 해석)
- Math.random()의 범위는 0 <= n < 1 입니다.
- 예제에서 (max - min)은 5이기 때문에 범위에 곱셈을 합니다. --> 0*5 <= n < 1*5
- 0 <= n < 5에서 min 값 5를 범위에 더합니다. --> (0 + 5) <= n < (5 + 5)
- 따라서 위의 예제는 5 <= n < 10의 범위를 가지는 난수가 발생합니다.
3-2. 특정 범위의 정수 구하기 (int)
- Math.floor()를 사용해 5 이상 10 이하의 정수를 얻는 예제입니다.
- 참고글) [javascript] 소수점 반올림(round), 올림(ceil), 내림(floor), 버림(trunc)
function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
console.log(getRandomInt(5, 10)); // 출력 : 5, 6, 7, 8, 9, 10 중에 하나
예제 해석)
- Math.random()의 범위는 0 <= n < 1 입니다.
- 예제에서 (max - min + 1)은 6이기 때문에 범위에 곱셈을 합니다. --> 0*6 <= n < 1*6
- 여기까지 0 <= n < 6 사이의 난수가 float 타입으로 생성됩니다. 예) 5.123456
- Math.floor는 숫자 내림 기능을 하는 함수이기 때문에 발생된 난수에 내림 처리를 합니다.
- 여기서 발생할 수 있는 최대값과 최소값을 생각해 보겠습니다.
- 0 <= n < 6 사이의 실수는 0 ~ 5.xxxx 가 되고 내림 처리를 하면 0 <= n <= 5 범위의 정수값만 해당됩니다. (즉, 0,1, 2, 3, 4, 5 밖에 나올 수 없습니다.)
- 마지막으로 min 값 5를 더합니다. --> (0 + 5) <= n <= (5 + 5)
- 결과값은 5 <= n <= 10 범위의 정수값만 난수 발생이 됩니다.
3-3. 0 이상 특정값 미만의 정수 구하기 (int)
- Math.floor()를 사용해 0 이상 10 미만의 정수를 얻는 예제입니다.
function getRandomIntBelow(n) {
return Math.floor(Math.random() * n);
}
console.log(getRandomIntBelow(10)); // 출력 : 0, 1, 2, ..., 9
예제 해석)
- Math.random()의 범위는 0 <= n < 1 입니다.
- 예제에서 n은 10이기 때문에 범위에 곱셈을 합니다. --> 0*10 <= n < 1*10
- 여기까지 0 <= n < 10 사이의 난수가 float 타입으로 생성됩니다. 예) 5.123456
- 0 <= n < 10 사이의 실수는 0 ~ 9.xxxx가 되고 내림 처리를 하면 0 <= n <= 9 범위의 정수값만 해당됩니다.
- 결과값은 0 <= n <= 9 범위의 정수값만 난수 발생이 됩니다.
3-4. 소수점 자릿수를 지정한 실수 구하기
- 5 이상 10 미만의 소수점 2자리 실수를 얻는 예제입니다.
function getRandomFixed(min, max, decimalPlaces) {
const rand = Math.random() * (max - min) + min;
return parseFloat(rand.toFixed(decimalPlaces));
}
console.log(getRandomFixed(5, 10, 2)); // 출력 : 6.78
예제 해석)
- Math.random()의 범위는 0 <= n < 1 입니다.
- 예제에서 (max - min)은 5이기 때문에 범위에 곱셈을 합니다. --> 0*5 <= n < 1*5
- 0 <= n < 5에서 min 값 5를 범위에 더합니다. --> (0 + 5) <= n < (5 + 5)
- 5 <= n < 10의 범위를 가지는 float 타입 난수가 발생합니다.
- toFixed() 메서드는 소수점 이하가 길면 숫자를 반올림하고, 짧아서 부족할 경우 뒤를 0으로 채울 수 있습니다.
- 결과값은 5 <= n < 10 범위의 소수점 2자리의 실수값만 난수 발생이 됩니다.
관련글
728x90
'프로그래밍 > [javascript] 자바스크립트' 카테고리의 다른 글
[javascript] 자바스크립트 배열 함수들 정리 (2) (0) | 2024.10.29 |
---|---|
[javascript] 자바스크립트 배열 함수들 정리 (1) (0) | 2024.10.28 |
[javascript] 소수점 반올림(round), 올림(ceil), 내림(floor), 버림(trunc) (0) | 2024.10.25 |
[javascript] CORS 오류 해결 (0) | 2024.10.14 |
[javascript] ECMA 스크립트 문법 (0) | 2024.10.11 |