Web系開発メモ (original) (raw)

C# 期待値を算出する方法(離散型確率変数)

C# を使って、離散型確率変数の期待値を計算する方法を書いていきます。

目次

  1. コード例
  2. 確率が同じ場合

1. コード例

コード例は以下の通りです。

// 確率変数と確率 int[] vs = { 0, 1 }; double[] ps = { 0.5, 0.5 };

// 期待値を算出 double e = 0d; for (int i = 0; i < vs.Length; i++) { e += vs[i] * ps[i]; }

// 出力 Console.WriteLine(e); // 0.5 Console.ReadKey();

2. 確率が同じ場合

上の例やサイコロの目ように、確率が同じ場合は、以下のコードでも大丈夫だと思います。

// 確率変数と確率 int[] vals = { 1, 2, 3, 4, 5, 6 }; double p = 1d / vals.Length;

// 期待値を算出 double e = 0d; foreach (var v in vals) { e += v * p; }

// 出力 Console.WriteLine(e); // 3.5 Console.ReadKey();