랜덤 난수의 정수화
189
작성한 질문수 3
Math.floor(Math.random() * num + 1) 처럼 알려주셨는데 대신Math.ceil(Math.random() * num) 으로 써도 되나요? 차이가 있을까요?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
님의 질문에 답변드리겠습니다. Math.floor(Math.random() * num + 1)과 Math.ceil(Math.random() * num)은 비슷해 보이지만, 역할에 있어서 약간의 차이가 있습니다.
Math.floor(Math.random() * num + 1)는 1부터 num까지의 정수 중 하나를 반환합니다. 여기서 Math.random()은 0에서 1 사이의 실수를 반환하므로, num을 곱한 후 Math.floor()를 사용하면 0부터 num - 1까지의 정수가 나오고, 여기에 1을 더해 1부터 num까지의 정수를 얻을 수 있습니다.
반면, Math.ceil(Math.random() * num)는 1부터 num까지의 정수를 반환할 수도 있지만, Math.random()이 0을 반환할 때를 제외하고는 원하는 범위를 정확하게 얻기 어렵습니다. 즉, Math.random()이 0을 반환하는 극히 드문 경우를 제외하고는 주로 1부터 num까지의 값을 얻지만, Math.random()이 0을 반환하면 결과가 1이 아닌 0이 되어 원하는 범위를 벗어납니다.
따라서, 1부터 num까지의 정수 중 하나를 무작위로 선택하려는 목적이라면, Math.floor() 방식을 사용하는 것이 더 적절합니다.
존재하지 않는 일기 url입력 시 alert이 두 번 떠요
0
17
1
useState 직접 구현 부분에서 질문이 있습니다.
1
20
1
학습을 하고 블로그에 정리를 해도 괜찮을까요?
1
23
1
교재(3쇄)와 강의 내용 문의
0
28
2
섹션2번 부분 강의 화면이 잘 못된것 같아서 문의합니다.
0
23
1
call stack 표현이 잘못표현된것이 아닌가요?
0
64
2
React 와 Virtual DOM 의 이야기 영상 실행이 안됩니다.
0
34
1
일반 강의와 차이점?
1
53
1
!= 연산자의 역할
0
35
1
중요하진 않지만 설명하신부분에서 안된부분..
1
37
1
주석처리한 buttons가 작동하는 이유
0
102
1
document 객체가 콘솔에 화면처럼 뜨질않는데 무슨이유일까요?
0
148
1
vscode 에서 LiveSever를 통해 연 페이지에 왜 코드가 바로 연동이 되어 출력이 안될까요??
0
199
1
Start 버튼을 연속으로 두 번 누르면 Stop버튼이랑 Reset 버튼이 작동하지 않습니다.
0
126
1
Shallow Freeze 관련 질문드립니다!
0
212
1
var 로 선언해서 window 객체의 프로퍼티로 만들기
0
142
1
섹션9 Todo App 질문드립니다.
0
203
1
강의 자료 소스 복사
0
317
1
Todo App(1) 스타일 파일 코드
0
453
2
변수를 먼저 let val; 선언하는 이유가 있나요?
0
238
1
[섹션2 Document Object 이용해보기] lists라는 변수를 forEach를 사용하려면...
0
192
1
해당 강의의 index.html 소스코드 파일을 받고 싶습니다!
0
253
1
[Event Delegation] 요소의 id를 변수 선언 없이 바로 사용할 수 있는 이유?
1
405
1
얕은 복사가 주소만 복사하는 것 아닌가요?
0
503
1





