作业帮 > 综合 > 作业

【C语言】关于概率计算的方法

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/28 22:37:38
【C语言】关于概率计算的方法
题目是这样的.某实验成功的概率为0.1,不停的重复这个实验.每次实验相互独立,直到实验成功停止,求做多少次实验则一定成功?
我的思路是这样的.只做一次实验恰好就成功的概率为P(1)=0.1;只做两次实验恰好第二成功的概率为P(2)=0.9*0.1..所以只做i次实验恰好第N次成功的概率为P(N)=0.9^(N-1)*0.1.这样的话做N次实验,成功的概率就是1到N次成功概率的累加.求一定成功就是求什么时候概率大于等于1.所以我想到可以用累加的值和1不断进行比较,写的c程序如下
#include
#include
int main()
{
\x09int i;
\x09long double b;
\x09b=0;
\x09for (i=1;b>=1;i++)
\x09\x09b=b+0.1*pow(0.9,i-1);
\x09printf("%d\n",i);
\x09return 0;
}
在visual studio 2013 的环境下编译和生成都没问题,但就是得不出答案.
不知道我的程序错在哪里,或者在逻辑上有什么问题希望大神可以指点迷津.
我想是因为for (i=1;b>=1;i++)这一句无效.

前面b=0,循环条件是b>=1,所以不循环的.
另外b=b+0.1*pow(0.9,i-1);这句的0.1后面应该加上f,否则类型不对.
这个是改动过的代码
#include <stdio.h>
#include <math.h>
int main()
{
\x09int i;
\x09long double b;
\x09b=0;
\x09for (i=1;b<=1;i++)
\x09{\x09
\x09
\x09
    \x09b=b+0.1f*pow(0.9,i-1);
\x09
\x09}
\x09\x09printf("%d\n",i);
\x09return 0;
}

时间有些晚了,答题有点仓促,不知道能不能行,如果出现问题,希望海涵.