C语言(计算二项分布)
时间: 2024-05-10 18:07:02 浏览: 9
二项分布是一种离散型概率分布,表示在n次独立重复实验中,成功的次数为k的概率分布。其概率质量函数为:
P(k) = C(n, k) * p^k * (1-p)^(n-k)
其中,C(n, k)表示从n个不同元素中取k个元素的组合数,即组合数公式:
C(n, k) = n! / (k! * (n-k)!)
p表示每次实验成功的概率,1-p表示每次实验失败的概率。
在C语言中,计算二项分布可以使用以下代码实现:
#include <stdio.h>
// 计算组合数
int combination(int n, int k)
{
int i, c = 1;
for (i = 1; i <= k; i++)
{
c = c * (n - i + 1) / i;
}
return c;
}
// 计算二项分布概率
double binomial(int n, int k, double p)
{
return combination(n, k) * pow(p, k) * pow(1-p, n-k);
}
int main()
{
int n = 10, k = 5;
double p = 0.5;
double b = binomial(n, k, p);
printf("n=%d, k=%d, p=%f, binomial=%f\n", n, k, p, b);
return 0;
}
在上述代码中,combination函数用于计算组合数,binomial函数用于计算二项分布概率。在main函数中,给定n、k、p的值,调用binomial函数计算二项分布概率,并输出结果。