일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 이클립스
- vscode
- javascript
- 인텔리제이
- 자바
- IntelliJ
- Maven
- 배열
- Files
- json
- Java
- Button
- 자바스크립트
- 테이블
- string
- html
- table
- CSS
- 이탈리아
- Eclipse
- date
- list
- 문자열
- Array
- Visual Studio Code
- input
- CMD
- js
- ArrayList
- windows
- Today
- Total
어제 오늘 내일
[Javascript] 난수 생성하기 (랜덤 숫자, Random Number) 본문
Javascript로 난수를 생성하는 방법을 소개합니다.
- Math.random()
- 범위를 지정한 난수 생성하기
- 0~9
- 0~10
- 0~99
- 0~100
- 1~10
- 2~5
- 난수 생성 함수 만들기 (범위 지정)
- min <= number <= max ( max 값 포함)
- min <= number < max (max 값 불포함)
1. Math.random()
Math.random()
Javascript에서 난수를 생성하기 위해서는, Math.random() 함수를 사용합니다.
이 함수는 0~1(1은 미포함) 구간에서 부동소수점의 난수를 생성합니다.
const rand1 = Math.random();
const rand2 = Math.random();
const rand3 = Math.random();
document.write(rand1 + '<br>');
document.write(rand2 + '<br>');
document.write(rand3 + '<br>');
위 코드는 실행할 때마다 다른 난수를 생성합니다.
그리고, 그 값은 0~1 사이의 부동소수점 값입니다. (1은 포함하지 않습니다)
2. 범위를 지정한 난수 생성하기
Math.random() 함수는 0~1 사이의 부동소수점 난수를 생성합니다.
그렇다면, 정수인 난수를 생성하려면 어떻게 해야 할까요?
정수인 난수를 생성하기 위해서는
Math.random() 함수와 Math.floor() 함수를 함께 사용합니다.
Math.floor() 함수는 소수점 1번째 자리를 버림하여 정수를 리턴하는 함수입니다.
[Javascript] 반올림(round), 올림(ceil), 내림(floor) - 소수점, 음수,자리수 지정
예제
// (1) 0 <= random < 1
const rand1 = Math.random();
document.write('(1) ' + rand1 + '<br>');
// (2) 0
const rand2 = Math.floor(Math.random());
document.write('(2) : ' + rand2 + '<br>');
// (3) 0 <= random <= 9
const rand_0_9 = Math.floor(Math.random() * 10);
document.write('(3) : ' + rand_0_9 + '<br>');
// (4) 0 <= random <= 10
const rand_0_10 = Math.floor(Math.random() * 11);
document.write('(4) : ' + rand_0_10 + '<br>');
// (5) 0 <= random <= 99
const rand_0_99 = Math.floor(Math.random() * 100);
document.write('(5) : ' + rand_0_99 + '<br>');
// (6) 0 <= random <= 100
const rand_0_100 = Math.floor(Math.random() * 101);
document.write('(6) : ' + rand_0_100 + '<br>');
// (7) 1 <= random <= 10
const rand_1_10 = Math.floor(Math.random() * 10) + 1;
document.write('(7) : ' + rand_1_10 + '<br>');
// (8) 2 <= random <= 5
const rand_2_5 = Math.floor(Math.random() * 4) + 2;
document.write('(8) : ' + rand_2_5 + '<br>');
(1) 0 <= random < 1
Math.random();
Math.random() 함수는 0~1 사이의 실수를 리턴합니다.(1 미포함)
(2) 0
Math.floor(Math.random());
Math.floor() 함수는 소수점 1째자리 이후의 숫자를 버림하고, 정수를 리턴합니다.
Math.random() 함수는 0~0.99999...인 숫자를 리턴하기 때문에,
Math.floor(Math.random()) 의 결과는 항상 0입니다.
(3) 0 <= random <= 9
Math.floor(Math.random() * 10);
Math.random() 함수의 결과는 0~0.99999...이고,
Math.random() * 10 의 결과는 0~9.99999...입니다.
따라서, Math.floor(Math.random() * 10)의 결과는 0~9 범위의 정수입니다.
Math.random() 함수를 이용하여 정수 범위의 난수를 생성할 때는
이렇게 Math.random() 함수를 호출한 결과를 조작하고, Math.floor()를 사용합니다.
(4) 0 <= random <= 10
Math.floor(Math.random() * 11);
10을 포함하는 정수 난수를 얻고 싶다면
Math.random() 함수의 결과에 11을 곱하고, 소수점 이하를 버림합니다.
(5) 0 <= random <= 99
Math.floor(Math.random() * 100);
0~99 범위의 정수 난수를 생성하려면
Math.random() 함수의 결과에 100을 곱해주고, 소수점 이하를 버림합니다.
(6) 0 <= random <= 100
Math.floor(Math.random() * 101);
0~100 범위의 정수 난수를 생성하려면
>Math.random() 함수의 결과에 101을 곱하고, 소수점 이하를 버림합니다.
(7) 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
(8) 2 <= random <= 5
Math.floor(Math.random() * 4) + 2;
(7)번 예제와 같이 범위를 지정하는 예제입니다.
Math.floor(Math.random() * (5 - 2 + 1)) + 2
= Math.floor(Math.random() * 4) + 2
3. 난수 생성 함수 만들기 (범위 지정)
min <= number <= max ( max 값 포함)
function rand(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
document.writeln(rand(1, 3));
document.writeln(rand(77, 88));
min ~ max 값까지의 정수 랜덤 넘버를 만들어주는 함수입니다.
min <= number < max (max 값 불포함)
function rand(min, max) {
return Math.floor(Math.random() * (max - min)) + min;
}
document.writeln(rand(1, 3));
document.writeln(rand(77, 88));
max값을 포함하지 않는, min ~ max 값까지의 정수 랜덤 넘버를 만들어주는 함수입니다.
Math.random(), Math.floor() 함수를 이용해서 난수(random number)를
만드는 방법을 알아보았습니다.
'IT > Javascript' 카테고리의 다른 글
[Javascript] JSON 문자열을 객체로 변경하기 (0) | 2020.12.13 |
---|---|
[Javascript] 객체를 JSON으로 변환하기 (0) | 2020.12.07 |
[Javascript] 객체 속성 읽기, 추가, 변경, 삭제 (0) | 2020.12.06 |
[Javascript] 객체(Object) 속성(property) 개수 구하기 (0) | 2020.12.06 |
[Javascript] 현재 시간을 항상 한국 날짜/시간으로 표시하기 (UTC to KST) (1) | 2020.12.06 |