概率c語言
❶ 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語言中如何表示概率
現成的函數沒有,可以通過產生隨機數實現概率。
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語言 隨機數 概率
計算機里的取隨機數函數是均勻分布的隨機數。
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語言一個概率的問題。解釋一下語言句就好了。
首先理解k的意思,k表示模擬取走一個球的編號。
當k號球被取走後,k位置上其實就沒有球了,這里是將最後一個球放到了k的位置上,然後將k的取值范圍縮小一個(int k = rand() % (9-j);)。
如假設j = 0, k = 2 ,
則模擬取出的就是1,那麼x中的球就應該少去一個1
如: 1 1 1 1 2 2 2
因為x為一個數組,刪減很麻煩,
所以就直接將原來數組中最後一個 1 1 1 1 1 2 2 2 ,也就是2
賦值到k處 就形成了新的x:1 1 2 1 1 2 2 2,而前面的
int k = rand() % (9-j);
則限制了在x中的取值的范圍。
初始的時候j = 0;漲一個 就成了 1
那麼k = rand() % (9-j);
k的取值范圍就是 0 - 7
也就是說不會取到x的最後一個了。
主要是考慮到取走一個球之後,裡面就減少了一個。
❺ c語言 概率
表示看不懂題目
❻ C語言查找概率問題
在3個節點中找到的概率=在第一個節點找到概率+第二個節點找到概率+第三個節點找到概率
=1/2+(1-1/2)*1/3+(1-1/2)*(1-1/3)*1/6
=1/2+1/6+1/18
=13/18
❼ 【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語言隨機生成一個概率
隨機生成一個數倒是可以,概率的話,直接用1除以生成的數就可以了
❾ 概率問題,C語言
#include<stdio.h>
#defineBOY'1'
#defineGRE'0'
intmain(void)
{
intman,woman,family;
man=woman=family=0;
charpeople='