http://hihocoder.com/problemset/problem/1339
题意:
求一个骰子扔n次后最后点数相加为m的概率。
思路:
f[i][j]表示扔到第i次时总值为j的概率。
1 #include<cstdio> 2 #include<iostream> 3 using namespace std; 4 5 int n, m; 6 double f[105][605]; 7 8 int main() 9 { 10 f[0][0]=100; 11 for(int i=1;i<=100;i++) 12 { 13 for(int j=1;j<=6;j++) 14 { 15 for(int k=i-1;k<=6*(i-1);k++) 16 f[i][k+j]+=f[i-1][k]/6.0; 17 } 18 } 19 while(~scanf("%d%d",&n,&m)) 20 { 21 printf("%.2f ",f[n][m]); 22 } 23 return 0; 24 }