랜덤하게 1에서 6으로 나오는 함수를 가지고 if문, 사칙연산만 사용해서
1 ~ 12 까지의 랜덤숫자가 나오는 random12함수 만들기
function random6() {
return Math.ceil(Math.random() * 6);
}
function random12() {
if (random6() % 2) {
return random6() + 6;
} else {
return random6();
}
}
1 ~ 6까지의 숫자는 확보가 되어있고 7 ~ 12까지의 숫자만 더 나오게 해주면 된다.
12까지의 랜덤숫자가 나오는 함수는 1 ~ 6 숫자가 나오는 확률 50%, 7 ~ 12숫자가 나오는 확률 50% 가지게 된다.
그렇다면 random6 함수로 확률을 나눌 수 있는 방법을 찾으면 될거라 생각했다.
홀수: 1, 3, 5 짝수: 2, 4, 6 반반의 확률이기 때문에 홀수, 짝수를 따져서 문제를 풀었다.
const result = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
let resultValue;
for (let i = 0; i < 10000; i++) {
resultValue = random12();
result[resultValue - 1]++;
}
console.log(result)
console.log(result) 결과 : (12) [821, 844, 824, 819, 836, 892, 836, 865, 835, 807, 821, 800]
'알고리즘, 자료구조' 카테고리의 다른 글
[알고리즘] Leetcode. Linked List Cycle 4개의 해결 방법 (0) | 2022.07.24 |
---|---|
[알고리즘] Leetcode. Design Linked List (0) | 2022.07.19 |
[알고리즘] Leetcode. Replace Elements with Greatest Element on Right Side (0) | 2022.05.27 |
[알고리즘] Leetcode. Find Numbers with Even Number of Digits (0) | 2022.05.20 |
[알고리즘] Leetcode 704. Binary Search 이진 검색 알고리즘 (0) | 2022.05.18 |