【C语言】关于概率计算的方法题目是这样的.某实验成功的概率为0.1,不停的重复这个实验.每次实验相互独立,直到实验成功停止,求做多少次实验则一定成功?我的思路是这样的.只做一次实验
来源:学生作业帮助网 编辑:作业帮 时间:2024/05/03 04:46:29
【C语言】关于概率计算的方法题目是这样的.某实验成功的概率为0.1,不停的重复这个实验.每次实验相互独立,直到实验成功停止,求做多少次实验则一定成功?我的思路是这样的.只做一次实验
【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 的环境下编译和生成都没问题,但就是得不出答案.
不知道我的程序错在哪里,或者在逻辑上有什么问题希望大神可以指点迷津.
【C语言】关于概率计算的方法题目是这样的.某实验成功的概率为0.1,不停的重复这个实验.每次实验相互独立,直到实验成功停止,求做多少次实验则一定成功?我的思路是这样的.只做一次实验
我想是因为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;
}
时间有些晚了,答题有点仓促,不知道能不能行,如果出现问题,希望海涵.