c语言求概率从1到10共10个数字中有放回的任意连续取7个数字,假定每次抽取中,每个数字被抽到的概率均为0.1,求7个数字之和刚好为20的概率.
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/25 11:48:12
c语言求概率从1到10共10个数字中有放回的任意连续取7个数字,假定每次抽取中,每个数字被抽到的概率均为0.1,求7个数字之和刚好为20的概率.
c语言求概率
从1到10共10个数字中有放回的任意连续取7个数字,假定每次抽取中,每个数字被抽到的概率均为0.1,求7个数字之和刚好为20的概率.
c语言求概率从1到10共10个数字中有放回的任意连续取7个数字,假定每次抽取中,每个数字被抽到的概率均为0.1,求7个数字之和刚好为20的概率.
这是典型的古典概型,直接用穷举法计算即可.
计算思路是遍历1到10共10个数的所有组合(用goNext函数),统计出组合总数count与7个数之和等于20的组数successNumber,这两个数的商successNumber/count就是所求的概率.
计算结果为:
总次数:10000000,成功次数:26544,概率:0.0026544
程序可以如下实现:
#include
int data[7];
int goNext()
{
int i;
for ( i = 0; i < 7 && ++data[i] > 10; ++i ) data[i] = 1;
if ( i == 7 ) return 0;
return 1;
}
void main()
{
int i,m;
double p;
long count = 0,successNumber = 0;
for ( i = 0; i < 7; ++i) data[i] = 1;
do
{
++count;
for ( i = 0,m = 0; i < 7; ++i ) m += data[i];
if ( 20 == m ) ++ successNumber;
} while ( goNext() );
p = (double) successNumber / (double) count;
printf("总次数:%d,成功次数:%d,概率:%.7lf\n",count,successNumber,p);
}