JS repl.it 22. Number

김형석·2022년 4월 29일
0

WECODE

목록 보기
12/33

Assignment

최소(min), 최대값(max)을 받아 그 사이의 랜덤수를 return 하는 함수를 구현해주세요.

*함수는 짧지만, 이번에는 수학의 뇌를 조금 써야 하는 assignment 입니다. 🙌

  • 앞으로 랜덤함수를 쓸 일이 정말 많습니다.
  • 그런데 Math.random() 으로는 내가 원하는 범위의 랜덤수를 얻을 수가 없습니다.
  • 항상 0.0000000000000000에서 0.9999999999999999 사이 값만 return 해주기 때문이죠.

코드 결과

function getRandomNumber (min, max) {

  return Math.random() * (max - min) + min;

}

문제처럼 함수는 간단하지만 수학적 뇌가 필요한 문제였다. 하지만 나는 수학적 뇌가 없기때문에 결국 구글의 도움을 받았다.

랜덤함수는 0.0000000000000000에서 0.9999999999999999 사이의 값에서 랜덤수를 제공하기 때문에 최대값에서 최소값을 뺀 값을 곱해준 후 최소값을 다시 더하면 최소값과 최대값 사이의 랜덤수를 받을 수 있다.

그냥 외워야겠다...

랜덤함수에 대해서도 알아보자

랜덤함수

원래라면 개발자가 랜덤숫자를 구하는 기능을 만들어야했지만 쓸 일이 많아서 javcascript에서 이미 랜덤함수가 구현되어 있다.

var randomNumber = Math.random();
console.log(randomNumber);

비록 0.0000000000000000에서 0.9999999999999999 사이의 값에서 랜덤수를 제공하지만, 이 랜덤함수를 이용해서 개발자가 원하는 범위의 랜덤수를 설정할 수 있다.

var randomNumber = Math.random();
console.log(Math.floor(randomNumber*10));

randomNumber * 10의 값은 1의 자리수에 엄청 긴 소수자리로 이루어져 있다.
ex)9.1531351231531321

이렇게 구한 후, 소수자리는 다 버리도록 내림함수를 사용하여 0~10 사이의 랜덤수를 구할 수 있다.

이런 랜덤함수는 로또를 뽑거나, 이벤트 당첨자를 뽑을 때 유용하게 쓰인다고 한다.

profile
블로그 이사 : https://hengxi.tistory.com

0개의 댓글