inflearn logo
강의

講義

知識共有

真似しながら学ぶJavaScript A-Z

JavaScriptの操作とMath Object

랜덤 난수의 정수화

178

119taeyoung3063

投稿した質問数 3

0

Math.floor(Math.random() * num + 1) 처럼 알려주셨는데 대신Math.ceil(Math.random() * num) 으로 써도 되나요? 차이가 있을까요?

javascript

回答 1

0

communityai8509

안녕하세요, 인프런 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() 방식을 사용하는 것이 더 적절합니다.

3강 질문

0

18

1

74. 데이터 캐시 - 1 (이론) 강의 영상 누락

0

27

1

2강 nodejs 3단계 설명 질문

0

33

1

imagesLoaded에 관한 질문

0

19

2

useEffect와 lifecycle문의

0

26

2

프론트엔드 학습 수준 문의

0

37

2

리액트 챕터별 코드에서 eslint 설정파일이 없어요

0

48

2

최근 코테, 과제 테스트 트렌드

0

68

2

lucide react 아이콘 설치

0

46

2

17강 zustand store 서버에서 생성

1

36

1

주석처리한 buttons가 작동하는 이유

0

94

1

document 객체가 콘솔에 화면처럼 뜨질않는데 무슨이유일까요?

0

140

1

vscode 에서 LiveSever를 통해 연 페이지에 왜 코드가 바로 연동이 되어 출력이 안될까요??

0

169

1

Start 버튼을 연속으로 두 번 누르면 Stop버튼이랑 Reset 버튼이 작동하지 않습니다.

0

116

1

Shallow Freeze 관련 질문드립니다!

0

198

1

var 로 선언해서 window 객체의 프로퍼티로 만들기

0

137

1

섹션9 Todo App 질문드립니다.

0

194

1

강의 자료 소스 복사

0

309

1

Todo App(1) 스타일 파일 코드

0

448

2

변수를 먼저 let val; 선언하는 이유가 있나요?

0

231

1

[섹션2 Document Object 이용해보기] lists라는 변수를 forEach를 사용하려면...

0

186

1

해당 강의의 index.html 소스코드 파일을 받고 싶습니다!

0

243

1

[Event Delegation] 요소의 id를 변수 선언 없이 바로 사용할 수 있는 이유?

1

394

1

얕은 복사가 주소만 복사하는 것 아닌가요?

0

495

1