본문 바로가기

풀스택(웹)/Backend

[JavaScript] 자바스크립트 랜덤 숫자 생성

반응형

Math.random() 을 활용한 랜덤 숫자 생성

어느 언어를 사용하건 랜덤한 숫자를 생성하는 기능이 필요할 때가 있다.

JavaScript 에서는 Math 라이브러리의 random() 함수를 사용하여 구현할 수 있는데, 0부터 1까지의 랜덤한 수를 생성한다.

간단한 예시를 보자.

See the Pen Untitled by coing-ye (@coing-ye) on CodePen.

위에서 볼 수 있듯이 반복할때마다 0~1사이의 난수를 생성하는 것을 확인할 수 있다.

 

이 기능만으로도 사용이 가능하지만, 특정 범위의 값을 생성하려면 어떻게 해야할까?

0부터 1까지의 값을 생성한다는 점을 생각하면 단순히 생성된 난수에 N을 곱해주면 0~N사이의 값을 생성한다는것을 알 수 있다. 아래 예시를 보자.

See the Pen Untitled by coing-ye (@coing-ye) on CodePen.

 

여기서 Math.floor() 함수를 사용하면 생성된 자료값을 정수형으로 변환할 수 있다. Math.floor()는 소수점 아래를 버리는 함수이기 때문에, 이 방법을 사용하면 0이상 N '미만'의 정수형을 생성하게 된다. 아래 경우에선 0~9까지의 정수를 랜덤하게 생성한다.

See the Pen 난수생성-정수형 by coing-ye (@coing-ye) on CodePen.

 

이제 정말 마지막이다. 1부터 10까지의 정수를 랜덤하게 생성하려면 어떻게 해야할까?

1)우선 Math.floor(Math.random()*N(N=10;범위지정) 을 사용하여 0~9까지의 정수를 생성한다.

2)M(M=1;최소값)을 더해서 1~10으로 범위를 바꿔준다.

See the Pen 난수생성-최소값 by coing-ye (@coing-ye) on CodePen.

 

결론

이야기가 길어졌지만 결국 하나만 생각하면 된다. 

Math.floor(Math.random() * N(범위))+M(최소값)

반응형