算法提高 概率计算

算法提高 概率计算
动态规划

#include<stdio.h>
double dp[101][100*101+1];
int main()
{
	int a,b,x,i,j,n,k;
	scanf("%d%d%d%d",&n,&a,&b,&x);
	if(x<n*a||x>n*b)
	 printf("0.0000\n");
	else
	{
		for(int i=2;i<=n;i++)
		 for(int j=i*a;j<=i*b;j++)
		  dp[i][j]=0.0;
		for(int j=a;j<=b;j++)
		 dp[1][j]=1.0/(b-a+1);
		for(int i=1;i<n;i++)
		 for(int j=i*a;j<=i*b;j++)
		  for(k=a;k<=b;k++)
		   dp[i+1][j+k]+=dp[i][j]*1.0/(b-a+1);
		printf("%.4lf",dp[n][x]);
	}
	return 0;
 } 
上一篇:综合除法


下一篇:函数空间