package leetcode;
public class offer_60 {
public double[] dicesProbability(int n) {
double[] ans=new double[5*n+1];
//dp表示n个骰子得出和为s的个数
int[][] dp=new int[n][6*n];
for (int i = 0; i < 6; i++) {
dp[0][i]=1;
}
//f(n,s)=f(n-1,s-1)+f(n-1,s-2)+...
for (int i = 1; i < n; i++) {
for (int j = i; j < (i+1)*6; j++) {
for(int k=1;k<=6;k++) {
if(j>=k) {
dp[i][j]=dp[i][j]+dp[i-1][j-k];
}
else {
break;
}
}
}
}
for (int i = 0; i < ans.length; i++) {
ans[i]=dp[n-1][n-1+i]/Math.pow(6, n);
System.out.println(ans[i]);
}
return ans;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
offer_60 off=new offer_60();
off.dicesProbability(3);
}
}