JavaScript
[FrontEnd2] JS 연습문제 (대수의 법칙 _ 주사위)
보라해바라기
2022. 6. 5. 11:37
SMALL
안녕하세요:) 보라해바라기입니다~
오늘은 대수의 법칙 중 하나인 주사위 확률 구하기!를 각 단계별로 develop 해보았습니다.
연습문제를 풀기 전, 대수의 법칙에 대한 간단한 설명을 하나 적고 시작해보겠습니다.
* 대수의 법칙
모집단이 커질수록 통계적으로 증명된 확률 값과 가까워진다는 통계 법칙
예를 들어, 각 주사위의 수가 나올 확률은 통계적으로 16.666....%인데
시행 횟수를 늘릴수록 16.666...%와 가까운 값이 도출됩니다!
1. 랜덤함수를 이용해 6번 주사위 굴리기
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
for(var i = 1; i <= 6 ; i++) {
var num = Math.ceil(Math.random()*6)
document.write("주사위 값: " + num, "<br>")
}
</script>
</head>
<body>
</body>
</html>
2. 랜덤함수를 생성한 값을 배열에 저장하고 출력
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
var dice_arr = [0, 0, 0, 0, 0, 0, 0] // 0번째 자리는 비우고 1번째부터 시작!
for (var i = 1 ; i <= 6 ; i++) {
var num = Math.ceil(Math.random()*6)
dice_arr[num]++
}
for (var i = 1 ; i <= 6 ; i++) {
document.write("주사위 숫자 " + i + ": " + dice_arr[i] + "회", "<br>")
}
</script>
</head>
<body>
</body>
</html>
3. 배열에 저장된 랜덤값을 확률로 계산
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
var dice_arr = [0, 0, 0, 0, 0, 0, 0]
for (var i = 1 ; i <= 6 ; i++) {
var num = Math.ceil(Math.random()*6)
dice_arr[num]++
}
for (var i = 1 ; i <= 6 ; i++) {
document.write("주사위 숫자 " + i + ": " + dice_arr[i] + "회, ")
var percent = (dice_arr[i]/6)*100
// **toFixied ~ 특정소수점에서 반올림
document.write("확률: " + percent.toFixed(2) + "%" , "<br>")
}
</script>
</head>
<body>
</body>
</html>
4. 주사위 시행 횟수가 100번일 때, 확률 계산
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
var dice_arr = [0, 0, 0, 0, 0, 0, 0]
for (var i = 1 ; i <= 100 ; i++) {
var num = Math.ceil(Math.random()*6)
dice_arr[num]++
}
for (var i = 1 ; i <= 6 ; i++) {
document.write("주사위 숫자 " + i + ": " + dice_arr[i] + "회, ")
var percent = (dice_arr[i]/100)*100
// **toFixied ~ 특정소수점에서 반올림
document.write("확률: " + percent.toFixed(2) + "%" , "<br>")
}
</script>
</head>
<body>
</body>
</html>
5. 사용자에게 시행 횟수를 입력받아 그에 따른 확률 계산
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
var dice_arr = [0, 0, 0, 0, 0, 0, 0]
var repeat = parseInt(prompt("시행 횟수 입력"))
for (var i = 1 ; i <= repeat ; i++) {
var num = Math.ceil(Math.random()*6)
dice_arr[num]++
}
for (var i = 1 ; i <= 6 ; i++) {
document.write("주사위 숫자 " + i + ": " + dice_arr[i] + "회, ")
var percent = (dice_arr[i]/repeat)*100
// **toFixied ~ 특정소수점에서 반올림
document.write("확률: " + percent.toFixed(2) + "%" , "<br>")
}
</script>
</head>
<body>
</body>
</html>
728x90