2290 - 兼职任务

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB

小东想去赚点外快,所以他报名参加了物流学院统计交通事故的兼职,每天据说有150RMB。好学的小东从交警那里得知,这个路口在他们观察的那一时段内汽车出现交通事故的概率为0.0001,小东又统计到了这一时段通过这一路口的车的总量为M,求出交通事故的次数不小于N的概率

e = 2.718282

题目输入

每行两个数字M和N(用空格分开),1000    m   100000,  m,当mn同时为0时输入结束。

题目输出

题目要求的概率(保留小数点后四位)

输入/输出样例

输入格式

1000 2
0 0

输出格式

0.0047

C语言解答

#include <stdio.h>
#include <math.h>
#define e 2.718282

double boSong(int i,double x);
int jiCheng(int i);
int main()
{
	int m,n,i;
	double result,x;
	while(scanf("%d %d",&m,&n))
	{
		if(m==0&&n==0)
		break;
		x=m*0.0001;
	
		for(i=0,result=1;i<n;i++)
		  result-=boSong(i,x);
        printf("%.4lf\n",result);
        /* printf("%lf\n %d", boSong(0,x),jiCheng(0));*/
		 
		
	}
}
double boSong(int i,double x)
{
	return pow(x,i)*pow(e,-x);
}
int jiCheng(int i)
{
	
	if(i==0)
	return 1;
	else
	return (i*jiCheng(i-1));
}

C++解答

#include<stdio.h>
#include<math.h>

int main(){
	int m, n;
	while(scanf("%d%d", &m, &n) != EOF){
if(m == 0 && n == 0)
  return 0;
		double a, b;
		a = 1 / exp(0.0001 * m);
		b = a;
		for(int i = 1; i < n; i++){
			a *= (0.0001 * m) / i;
			b += a;
		}
		printf("%.4lf\n", 1 - b);
	}
	return 0;
}