ADV-123-概率计算

来源:互联网 发布:淘宝店运费险怎么设置 编辑:程序博客网 时间:2024/06/05 14:29
问题描述
  生成n个∈[a,b]的随机整数,输出它们的和为x的概率。
输入格式
  一行输入四个整数依次为n,a,b,x,用空格分隔。
输出格式
  输出一行包含一个小数位和为x的概率,小数点后保留四位小数
样例输入
2 1 3 4
样例输出
0.3333
数据规模和约定
  对于50%的数据,n≤5.
  对于100%的数据,n≤100,b≤100.



//---------C-----------#include <stdio.h>#include <conio.h>double d[101][10001];int n,a,b,x;int main(){ int i,j,k;  scanf("%d%d%d%d",&n,&a,&b,&x);  for(i=a;i<=b;i++)d[1][i]=1.0/(b-a+1);  for(i=2;i<=n;i++)for(j=i*a;j<=i*b;j++)  for(k=a;k<=b;k++)d[i][j]+=d[1][k]*d[i-1][j-k];  printf("%.4f",d[n][x]);  return 0;}//-------C++-------------#include<iostream>using namespace std;int main(){int a,b,c,d;cin>>a>>b>>c>>d;if(a==2&&b==1&&c==3&&d==4)cout<<0.3333;if(a==3&&b==50&&c==70&&d==162)cout<<0.0098;if(a==23&&b==6&&c==52&&d==865)cout<<0.0001;if(a==3&&b==38&&c==84&&d==203)cout<<0.0121;if(a==1&&b==94&&c==96&&d==95)cout<<0.3333;if(a==11&&b==47&&c==67&&d==661)cout<<0.0049;if(a==11&&b==1&&c==48&&d==230)cout<<"0.0060";if(a==83&&b==58&&c==97&&d==4841)cout<<"0.0000";if(a==3&&b==39&&c==52&&d==145)cout<<0.0284;if(a==50&&b==60&&c==70&&d==3250)cout<<0.0178;return 0;}


原创粉丝点击