確率と統計​/期待値の和 のバックアップ差分(No.2)

Unity学習帳2冊目確率と統計 / 期待値の和 のバックアップ差分(No.2)
« Prev  Next »
1: 2016-03-18 (金) 23:48:59 osinko ソース 2: 2016-03-19 (土) 00:28:54 osinko ソース
Line 1: Line 1:
メモ メモ
 +
 +#jsmath
 +***期待値の和 [#n9c7e98e]
 +資料:「数学ガール 乱択アルゴリズム P155線型性」
 +
 +期待値の線形性の確認
 +&font(Navy,130%){すごろくゲームを作るとしてサイコロを各々のプレーヤーが10回振った程度でゴールする人が出てくるゲームにしたい};
 +この計算に期待値を利用する
 +
 +6面ダイスを一回振った時の期待値は
 +\(\displaystyle E\left( { X }_{ 1 } \right) \quad =\quad \sum _{ k=1 }^{ 6 }{ k } \cdot \frac { 1 }{ 6 } \quad =\quad \frac { 1+2+3+4+5+6 }{ 6 } \quad =\quad 3.5\)
 +となる。これを10回繰り返して試行するので10回加算すれば期待値の和として答えが出てくる
 +
 +\(E\left[ X \right] \quad =\quad E\left( { X }_{ 1 } \right) +E\left( { X }_{ 2 } \right) +E\left( { X }_{ 3 } \right) +\cdots +E\left( { X }_{ 9 } \right) +E\left( { X }_{ 10 } \right) \)
 +
 +\(3.5\times 10=35\)
 +
 +unityで実際に検証してみる
 +#code(csharp){{
 +using UnityEngine;
 +using System.Collections;
 +
 +public class SC2 : MonoBehaviour
 +{
 +
 +   // Use this for initialization
 +   void Start()
 +   {
 +       Sampling(6, 100000);
 +   }
 +
 +   private void Sampling(int dice, int sampling)
 +   {
 +       int length = 10;
 +       int total = 0;
 +
 +       for (int j = 0; j < sampling; j++)
 +       {
 +           int forward = 0;
 +           for (int i = 0; i < length; i++)
 +           {
 +               forward += TossDice(dice);
 +           }
 +           total += forward;
 +       }
 +       print((float)total / (float)sampling);
 +   }
 +
 +   public int TossDice(int dice)
 +   {
 +       return Random.Range(1, dice + 1);
 +   }
 +}
 +}}
 +
 +ランダム関数で6面ダイスを10回振り合計する。それを10万回サンプリングし平均を求める
 +結果、計算通り\(35\)周辺の値に収束する。以上により「''すごろくマップの35マス目にゴールを設定すれば希望通りのゲームバランスになる''」
« Prev  Next »


トップ   差分 バックアップ 複製 名前変更 リロード   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom