public double[] dicesProbability(int n) {
// 初始化一个筛子
double[] dp = new double[6];
// 初始化数组全是六分之一
Arrays.fill(dp, 1.0 / 6.0);
for (int i = 2; i <= n; i++) {
// 创建临时结果集
double[] tmp = new double[5 * i + 1];
for (int j = 0; j < dp.length; j++) {
for (int k = 0; k < 6; k++) {
// 递推公式
tmp[j + k] += dp[j] / 6.0;
}
}
// 保存结果
dp = tmp;
}
return dp;
}

本文介绍了一个计算掷n个骰子所有可能点数组合的概率的方法。使用动态规划算法,通过递推公式逐步计算从掷1个骰子到n个骰子的所有可能结果的概率分布。

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



