C++实现代码:
class Solution {
public:
vector<int> numberOfDice(int n) {
vector<vector<int>> dp(n + 1, vector<int>(6 * n + 1, 0));
dp[0][0] = 1;
for(int i = 1; i <= n; i++){
for(int j = i; j <= 6 * i; j++){
for(int k = 1; k <= min(j, 6); k++){
dp[i][j] += dp[i-1][j-k];
}
}
}
vector<int> ans(dp[n].begin() + n, dp[n].end());
return ans;
}
};

本文介绍了一种使用C++编程语言实现的算法,该算法可以计算n个骰子投掷后各种点数组合的概率分布。通过动态规划的方法,递推地构建了一个二维数组,用于存储从1到n个骰子的所有可能点数及其出现次数。
4176

被折叠的 条评论
为什么被折叠?



