*함수는 짧지만, 이번에는 수학의 뇌를 조금 써야 하는 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 사이의 랜덤수를 구할 수 있다.
이런 랜덤함수는 로또를 뽑거나, 이벤트 당첨자를 뽑을 때 유용하게 쓰인다고 한다.