[FrontEnd2] JS 연습문제 (대수의 법칙 _ 주사위)

    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>

    시행횟수가 1000회 일 때
    시행횟수가 10000회 일 때
    시행횟수가 100000회 일 때

    728x90

    댓글