Match626 DIV2 500

サイコロの期待値

期待値

期待値は「確率で重み付けした値の和」。*1

例題*2

アリスがa面サイコロ、ボブがb面サイコロを持っている。
単純に出た目が多い方が勝ちというゲームを行う。
アリスが勝つことを知っているとき、アリスが出す出目の期待値を求めよ。

回答案

以下の式より、期待値を求める。
\[ アリスの出目の合計 / アリスが勝つ回数 \]

回答コード(C#)

	class FiexedDiceGameDiv2
	{
		public double getExpectation(int a, int b){
			int cnt = 0;
			int sum = 0;
			double exp = 0.0;

			for (int i = 1; i <= a; i++) {
				for (int j = 1; j <= b; j++) {
					if (i > j) {
						cnt++;
						sum += i;
					}
				}
			}
			Console.WriteLine ("cnt=" + cnt.ToString () + ",sum=" + sum.ToString ());
			if (cnt != 0) {
				exp = (double)sum / (double)cnt;
			} 

			Console.WriteLine (exp);
			return exp;

		}
	}