class Solution {
public:
vector<double> dicesProbability(int n) {
vector<double> res(5 * n + 1);
vector<vector<int>> dp(n + 1, vector<int>(6 * n + 1, 0));
int row = n + 1, col = 6 * n + 1;
for (int i = 1; i <= 6; ++i) {
dp[1][i] = 1;
}
for (int i = 2; i < row; ++i) {
for (int j = i; j < col; ++j) {
for (int k = 1; k <= 6; ++k) {
if (j - k > 0) {
dp[i][j] += dp[i - 1][j - k];
} else {
break;
}
}
}
}
double y = pow(6.0, n);
for (int i = n; i <= 6*n; ++i) {
res[i - n] = dp[n][i] / y;
}
return res;
}
};
剑指offer 60:n个骰子的点数
猜你喜欢
转载自blog.csdn.net/weixin_44537258/article/details/114064241
今日推荐
周排行