세계 아소비대전 51'범선'의 역할 선택에 대해 파이톤을 이용해 조사를 진행했습니다.
개시하다
백설바가'세계의 아소비대전 51'배서에서'범선'을 탔을 때의 일이다.
여기서 선택하기에는 너무 아쉽다"라고 말했다.
라고 말했다.(그때 득점은 20)
잠시 의심이 생겨서 내가 조사해 보았다.
범선은 다섯 개의 주사위를 흔들어 손을 만드는 놀이로 그 중 한 손을 선택한다.
선택한 캐릭터는 모든 눈의 합계 득점 캐릭터입니다.
결론
20은 "있음"을 선택합니다.
미리 준비하다
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의 삐뚤어진 알에 독을 먹어서 비싼 것 같아...이런 느낌.
끝말
아소비대전을 분석하는 게임이 재밌어요.
Reference
이 문제에 관하여(세계 아소비대전 51'범선'의 역할 선택에 대해 파이톤을 이용해 조사를 진행했습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/wagasa2/items/ac4242360cffae7848f7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)