C語言程序算法:[1]隨機數編程?

一個理想隨機數發生器R,給定參數正整數x,它可以均勻隨機產生一個閉區間[0,x]之間的實數(注意是實數,每個實數出現的概率相同)R(x)。現在給定3個正整數a,b,c,我們使用a,b產生兩個隨機實數R(a), R(b),問R(a) + R(b) <= c的概率有多大? 輸入: 正整數a,b,c。正整數均不超過10000 輸出: R(a) + R(b) <= c的概率。注意輸出是一個有理數(分數),請化為最簡分數。(分子分母的最大公約數是1)。 例如 輸入a = 1, b = 1, c = 4,輸出"1/1"

#include

#include

#include

#define random(x) (rand()%x)

void main()

{

int i,j;

int z=0;

int s,t;

int a,b,c;

int m,l;

int r,m1,z1;

printf("請輸入C:");

scanf("%d",&c);

printf("請輸入A,B:\n");

scanf("%d,%d",&a,&b);

srand((int)time(0));

s= random((a)%(a+1));

t= random((b)%(b+1));

l=s+t;

m=a*b;

if(l

printf("1/1");}

// printf("%d\n",s);

// printf("%d\n",t);

// printf("%d\n",l);

else

{

for(i=0;i<=a;i++){

for(j=0;j<=b;j++)

{

if(i+j

z+=1;

}

}

m1=m;

z1=z;

// printf("%d/%d\n",z,m);

}

while(r!=0)

{

r=m1%z1;

m1=z1;

z1=r;

}

printf("%d/%d\n",z/m1,m/m1);

}

C語言程序算法 (共2篇) 下一篇:PV操作,售票員與...

語言, 程序, 算法, 隨機數,
相關問題答案