c语言有没有概率函数,用c求概率

c语言求概率

这是典型的古典概型,直接用穷举法计算即可。

创新互联建站主营米林网站建设的网络公司,主营网站建设方案,App定制开发,米林h5微信平台小程序开发搭建,米林网站营销推广欢迎米林等地区企业咨询

计算思路是遍历1到10共10个数的所有组合(用goNext函数),统计出组合总数count与7个数之和等于20的组数successNumber,这两个数的商successNumber/count就是所求的概率。

计算结果为:

总次数: 10000000, 成功次数: 26544, 概率: 0.0026544

程序可以如下实现:

#include stdio.h

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);

}

C语言求教 一个算概率的问题

呵呵。大家的好像都很专业。如果我没记错,这是一个高考数学题,你应该是个高中生吧。

可以用深度优先搜索(递归回溯),这样比较简单。

大致的思路是这样

用一个数组 f[6],f[1]~f[5]代表那5袋方便面。

用递归或者循环的方法生成123 放到这5个位置(就是穷举这total(=243)种可能)

然后写一个判断累计函数judge()

每生成一个排列就送到judge去判断一次

如果满足条件则ok加1

最后给出概率百分数 float percent = ok*100.0/total

//--------------------------------

递归的代码我已经写好了。通过适当修改相关参数(把方便面袋数量和卡片种类设置为变量提示用户输入),可以计算不同方便面袋数和卡片种类数的中奖概率。如果使用循环的话针对这个题需要5重循环,我想你应该会,我就不写了。

//--------------------------------

放代码:

//--------------------------------

#include stdio.h

#include conio.h

//----------------------

int f[6],ok,total;

void judge()

{ int card[4]={0},i; //card[]表示是否有第i张卡片

for(i=1;i=5;i++)

card[f[i]]++;

for(i=1;i=3;i++)

if(!card[i]) return;

ok++;

}//-------------------------

void put(int nxi)//往第nxi袋方便面袋里放卡片

{ if(nxi == 6)

{ total++;

judge();

return; //回溯

}

int i;

for(i=1;i=3;i++)

{ f[nxi] = i;

put(nxi+1);//递归

}

}//-------------------------

main()

{

float per;

char c = '%';

put(1);

per = 100.0 * ok/total;

printf("概率为:%d/%d\n",ok,total);

printf("百分数: %.2f%c",per,c);

getch();

}//-------------------------

运行结果:

150/243

61.73%

当然,你还可以加一个约分函数使得结果为最简分数。这里就不再讨论了。

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

我想是因为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()

{

int i;

long double b;

b=0;

for (i=1;b=1;i++)

{

b=b+0.1f*pow(0.9,i-1);

}

printf("%d\n", i);

return 0;

}

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

C语言 随机数 概率

计算机里的取随机数函数是均匀分布的随机数。

0.0005的概率,相当于2000个数里取一个。

所以我们可以

在0到1999范围里取随机数,如果取到数值

1000,我们就得1(并响铃),否则得0。

#include

stdio.h

#include

stdlib.h

#include

math.h

#include

time.h

void

main()

{

long

int

i,y;

double

x,

r,

M

=

2000.0;

srand((unsigned)time(NULL));

for

(i=0;i5000;i++)

//

取5000个

{

r

=

(

(double)rand()

/

((double)(RAND_MAX)+(double)(1))

);

x

=

(r

*

M);

y

=

(long

int)

x;

if

(y

==

1000)

{

printf("1

");printf("\007");

//

如果得1,就响铃!

}

else

printf("0

");

};

}

如何用c语言随机生成一个概率

随机生成一个数倒是可以,概率的话,直接用1除以生成的数就可以了

关于C语言中处理概率问题的函数

没有的

C语言是属于中级语言

而且不是面向数学计算的语言

不过对于这种功能的函数是可以用C语言自己写出来的


网站栏目:c语言有没有概率函数,用c求概率
网站URL:http://hbruida.cn/article/dseohei.html