세계 아소비대전 51'범선'의 역할 선택에 대해 파이톤을 이용해 조사를 진행했습니다.

개시하다


백설바가'세계의 아소비대전 51'배서에서'범선'을 탔을 때의 일이다.
여기서 선택하기에는 너무 아쉽다"라고 말했다.
라고 말했다.(그때 득점은 20)
잠시 의심이 생겨서 내가 조사해 보았다.
범선은 다섯 개의 주사위를 흔들어 손을 만드는 놀이로 그 중 한 손을 선택한다.
선택한 캐릭터는 모든 눈의 합계 득점 캐릭터입니다.

결론


20은 "있음"을 선택합니다.
  • 평균 17.5
  • 선택
  • 20보다 작을 확률은 69.48%
  • 21 이상 확률은 22.14%
  • 미리 준비하다


    1~6개의 눈이 있는 주사위를 던질 때는 눈 숫자의 평균치를 고려해야 한다.
    (※ 똑같이 눈 모양을 확보)
    여기서 어렸을 때 눈의 합계는 21이었다. 눈마다 평균이 나오기 때문에 평균 $E(x)$도 고정해야 한다
    $$
    E(x) =\frac{1}{6}\times 21 =\frac{7}{2}
    $$
    이렇게 계산해 내다.
    이렇게 구한 $E(x)$는 $X의 기대치로 불린다
    $$
    \begin{eqnarray}
    E(x)
    &=& x_1p_1 + x_2p_2 +\cdots + x_np_n\
    &=&\sum^n_{k=1}x_kp_k\
    &&(X = x_1, x_2, ..., x_n)(P=p_1, p_2, ..., p_n)
    \end{eqnarray}
    $$
    멈출 수도 있어.

    메시지


    그렇다면 주사위 5개를 동시에 던지면 고려된 눈의 합계 평균치.
    이때 다섯 개의 주사위의 확률은 독립적이어서 간단하게 합치면 평균치를 얻을 수 있다.

    $$
    E(x) =\frac{7}{2}\times 5 =\frac{35}{2}
    $$
    되다
    $X$을 확률 변수로 하고 $a, $b를 상수로 할 때
    $$
    E(aX+b) = aE(x)+b
    $$
    $E(X)=\rac{7}달러, $a=5달러, $b=0달러를 대입하면 중지되기 때문에

    실천하다


    지금까지 수학으로 선택의 평균을 구했다.
    그렇긴 한데, 이미 상당히 잊어버렸기 때문에 맞는지 아닌지...
    여기서부터 파이톤을 가지고 구한 평균값이 정확한지 확인하세요.
    또한 다음 코드는 Google Colab을 통해 작동을 확인합니다.

    평균 계산


    전략은 간단하다.
    1억 번에 다섯 개의 주사위를 총계로 구하다.그 다음으로 그 평균치를 찾으면 고정된 평균치도 찾는다.
    대다수의 법칙이다.
    실제 시도된 코드는 다음과 같다.
    import numpy as np
    
    # 試行回数
    N = 1 * 10**8
    
    # チョイス実行
    x = np.random.randint(1, 6+1, (N, 5))
    x = x.sum(axis=1)
    
    # 平均計算
    print(np.mean(x))
    # 17.4996012
    
    결과는 17.4996012로 계산 결과와 거의 일치한다.
    간단히 말하면.
    7행에서 1~6의 무작위 수를 크기(N, 5)로 만듭니다.
    여덟 번째 줄에서 주사위 다섯 개의 합계를 각각 계산한다.

    히스토그램


    의외로 간단히 시험해 봤기 때문에 직사각형을 덧붙였다.
    실제 사용한 코드는 다음과 같다.
    import numpy as np
    import matplotlib.pyplot as plt
    
    # 試行回数
    N = 1 * 10**8
    
    # チョイス実行
    x = np.random.randint(1, 6+1, (N, 5))
    x = x.sum(axis=1)
    
    # ヒストグラム生成
    result = plt.hist(x, bins=26, alpha=0.5, color=(0.43, 0.25, 0.91))
    
    # 補助線
    ex = 17.5
    min_ylim, max_ylim = plt.ylim()
    plt.axvline(17.5, color='k', linestyle='dashed', linewidth=1)
    plt.text(ex*1.05, max_ylim*0.9, f"E(x)={ex}")
    plt.axvline(20, color='w', linestyle='dashed', linewidth=1)
    
    # ラベル
    plt.title('Distribution of Scores in "Choice"')
    plt.xlabel("point")
    plt.ylabel("frequency")
    
    plt.savefig("fig.png")
    
    이렇게 만든 직사각형은 다음과 같다.

    이 직사각형에서 검은색 점선은 평균치이고 흰색 점선은 20이다.
    이로써 평균치를 초과한 것을 알 수 있다.

    20 미만의 확률


    그렇다면 선택한 점수가 20점 미만일 확률은 얼마나 될까?
    이 점을 알면 설득력이 높아진다.
    그러니 Pytohon, 근사하게 구해보세요.
    import numpy as np
    
    # 試行回数
    N = 1 * 10**8
    
    # チョイス実行
    x = np.random.randint(1, 6+1, (N, 5))
    x = x.sum(axis=1)
    
    # 頻度計算
    uni, counts = np.unique(x, return_counts=True)
    d = {str(u): c for u, c in zip(uni, counts)}
    
    # 20未満の発生確率
    temp = [v for k, v in d.items() if int(k) < 20]
    print(f"{(sum(temp) / N)*100:.02f}%")
    # 69.48%
    
    그 결과 69.48%로 전체의 약 70%가 20에 못 미쳤다.
    또 이 절차 15행의 부등호 방향을 바꾸면 21 이상 발생 확률도 간단히 조사할 수 있다.
    그 결과 22.14% 로 이보다 더 높은 확률은 약 20% 였다.
    soshage의 삐뚤어진 알에 독을 먹어서 비싼 것 같아...이런 느낌.

    끝말


    아소비대전을 분석하는 게임이 재밌어요.

    좋은 웹페이지 즐겨찾기