文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>用代码证明统计概率公式P(AB)=P(A|B)P(B)

用代码证明统计概率公式P(AB)=P(A|B)P(B)

时间:2010-12-24  来源:Everlonely

P(A) - probability of event A.

P(AB) - probability of simultaneous events A and B.

P(A|B) - probability of event A given event B.

 

证明过程:

 

 class Program
{
static Random R = new Random();
static void Main(string[] args)
{
List<Sample> ss = new List<Sample>();
for (int i = 0; i < 30; i++)
{
Sample s = new Sample();
if (R.Next(0, 2) == 0)
s.A = true;
if (R.Next(0, 2) == 0)
s.B = true;
ss.Add(s);
}
foreach (Sample s in ss)
{
Console.WriteLine(string.Format("A:{0},B:{1}", s.A, s.B));
}
//P(AB) probability of simultaneous events A and B.
double c_A_And_B = 0;
foreach (Sample s in ss)
{
if (s.A && s.B) c_A_And_B++;
}
Console.WriteLine("P(AB)={0}", c_A_And_B / 30);
//P(A|B) probability of event A given event B.
double c_B = 0;
double c_A_Given_B = 0;
foreach (Sample s in ss)
{
if (s.B)
{
c_B++;
if (s.A) c_A_Given_B++;
}
}
double p_A_Given_B = c_A_Given_B / c_B;
Console.WriteLine("P(A|B)={0}", p_A_Given_B);
double p_B = c_B / 30;
Console.WriteLine("P(B)={0}", p_B);
Console.WriteLine("P(A|B)P(B)={0}", p_A_Given_B * p_B);
Console.ReadKey();
}
}
public class Sample
{
public bool A { get; set; }
public bool B { get; set; }
}

一个随机输出结果

A:True,B:False
A:True,B:False
A:False,B:False
A:False,B:True
A:True,B:False
A:False,B:False
A:False,B:False
A:False,B:True
A:False,B:False
A:True,B:False
A:True,B:False
A:False,B:False
A:False,B:True
A:False,B:True
A:False,B:True
A:False,B:True
A:True,B:True
A:True,B:False
A:True,B:False
A:True,B:True
A:False,B:False
A:True,B:False
A:False,B:True
A:False,B:True
A:True,B:False
A:False,B:False
A:False,B:True
A:False,B:True
A:False,B:False
A:True,B:True
P(AB)=0.1
P(A|B)=0.230769230769231
P(B)=0.433333333333333
P(A|B)P(B)=0.1

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载