-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
랜덤 난수의 정수화
24.05.23 13:52 작성 조회수 52
0
답변을 작성해보세요.
0
인프런 AI 인턴
2024.05.25
안녕하세요, 인프런 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()
방식을 사용하는 것이 더 적절합니다.
답변 1