题目:
class Solution {
public:
vector<double> dicesProbability(int n) {
vector<double> dp(6, 1.0/6.0); //dp[j]表示和为j时的概率,这里j=6是因为这是第一个骰子,骰子增多j也会改变
for(int i=2;i<=n;i++){ //从第二个骰子开始计算dp[j]的概率
vector<double> tmp(5*i+1, 0); //5*i+1是点数之和的个数:6*i-(i-1)
for(int j=0;j<dp.size();j++){ //先拿i-1个骰子的点数之和数组的第j个值,它所影响的是i个骰子时的temp[j+k]的值
for(int k=0;k<6;k++){ //比如只有1个骰子时,dp[1]是代表当骰子点数之和为2时的概率,它会对当有2个骰子时的点数之和为3、4、5、6、7、8产生六种影响
tmp[j+k]+=dp[j]/6.0; //累加上dp数组值与1/6的乘积。j表示加骰子之前,k是新的一个骰子
}
}
dp = tmp;
}
return dp;
}
};
作者:Krahets
链接:https://leetcode.cn/problems/nge-tou-zi-de-dian-shu-lcof/solutions/637778/jian-zhi-offer-60-n-ge-tou-zi-de-dian-sh-z36d/
来源:力扣(LeetCode)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具