當前位置:首頁 » 編程語言 » c語言演算法概率計算
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言演算法概率計算

發布時間: 2022-08-24 12:24:54

① 如何用c語言實現求概率期望

用一個數組存放這100個概率。然後隨機生成N個0~99的數。以隨機生成的數為下標讀取數組里的數。然後相乘。。

② C語言中如何表示概率

現成的函數沒有,可以通過產生隨機數實現概率。
srand((unsigned)time(NULL));
int m,r=0;
m=rand()%10;
if(m==1||m==2||m==3||m==4||m==5||m==6||m==7)
{
r=r+1;
}
這段代碼中,執行r=r+1的概率就是0.7
希望可以幫到你

③ 【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 ", i);

return 0;

}

時間有些晚了,答題有點倉促,不知道能不能行,如果出現問題,希望海涵。

④ C語言游戲中獎概率演算法

從思想上來所,隨機變數x有兩個值,0表示不中獎,1表示中獎。如果進行N次實現,如果出現1的次數 / N = p%的話,我們說,x為1的概率為p%

STDLIB 中 rand() 函數的返回值,我們可以認為是服從平均分布的隨機變數的值。通過不等式的變換,我們可以得到任意范圍內,平均分布的隨機變數。

比如說,20%的中獎率,我可以定義, 取[0, 99]的隨機整數,如果該值為[0, 20) 則中獎,否則不中,那麼中獎率就為 20%

⑤ c語言概率法求圓周率

#include<stdio.h>
#include<stdlib.h>
intmain()
{doublex,y;
intm=0,n=10000000,i;
srand(time(0));
for(i=0;i<n;i++)
{x=(double)rand()/RAND_MAX;
y=(double)rand()/RAND_MAX;
if(x*x+y*y<1)m++;
}
printf("%lf ",4.0*m/n);
return0;
}

⑥ c語言 求隨機數分布概率

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<stddef.h>

intmain(){
floata,sum;

inti,j,n,m;

//100次求0-1之間的隨機數之和在0-11-2之間的概率分布次數
for(i=0;i<100;i++){
srand(time(NULL));
for(j=0;j<10;j++){
a=(float)rand()/RAND_MAX;
sum+=a;
}
if(sum>=0&&sum<=1)
n++;
}
if(sum>1&&sum<=2){
m++;
}
}

printf("01=%d12=%d ",n,m);

return0;
}

⑦ 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;i<5000;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語言編程

#include<stdio.h>

#include<math.h>

#define p1 0.02

#define p2 0.98

int main()

{ double p;

p=1-pow(p2,150)-150*p1*pow(p2,149);

printf("P=%lf ",p);

getch();

return 0;

}

⑨ 用C語言編寫一個程序,求擲硬幣1000次,至少有一次連續出現10次正面的概率。或者講講演算法。

有兩種辦法:
第一種就是用隨機數進行模擬,然後進行至少100輪的模擬,取平均數
第二種就是用公式,根據概率學進行公式推導,然後使用C語言進行計算。
第一種並不能很准確,但是有說服力,模擬輪數越多越趨向於准確
第二種准確並有說服力,但是需要理論支持去計算。
公式的話:
全部可能出現的排列,是2的1000次方
特定位置可能出現滿足的排列,比如前10個都是正面,剩下的隨便排列,就是2的990次方
特定位置數,一共是991個
所以,幾率就是:991 * 2^990 / 2^1000
(好久沒有算過了,可能不太對,但是思路差不多,你好好想想吧)
因為,前11個都是正面的,同時滿足第一個和第二個位置的,是重復,需要排除一個,所以還需要額外考慮排除,需要進行處理一下……實際比上述的幾率小,具體公式仍需推導……非專業人員幫不到你

⑩ C語言 計算泊松分布概率

哈哈
#include <stdio.h>
#include <math.h>
main()
{
int i,k,m,a=1;
double p,e=2.71828;
scanf ("%d %d",&m,&k);
for (i=1;i<=k;i++)
a=a*i;
p=m*k*e-m/a;
printf("%lf\n",p);
}
希望對樓主有所幫助!