【剑指offer】面试题60:n个骰子的点数(Java)
把n個(gè)骰子扔在地上,所有骰子朝上一面的點(diǎn)數(shù)之和為s。輸入n,打印出s的所有可能的值出現(xiàn)的概率。
?
你需要用一個(gè)浮點(diǎn)數(shù)數(shù)組返回答案,其中第 i 個(gè)元素代表這 n 個(gè)骰子所能擲出的點(diǎn)數(shù)集合中第 i 小的那個(gè)的概率。
?
示例 1:
輸入: 1
輸出: [0.16667,0.16667,0.16667,0.16667,0.16667,0.16667]
示例?2:
輸入: 2
輸出: [0.02778,0.05556,0.08333,0.11111,0.13889,0.16667,0.13889,0.11111,0.08333,0.05556,0.02778]
?
限制:
1 <= n <= 11
代碼:
class?Solution?{
????public?double[]?twoSum(int?n)?{
????????int?dp[][]?=?new?int[n+1][6*n+1];
????????double?result[]?=?new?double[5*n+1];
????????double?x?=?Math.pow(6,n);
????????for(int?i=1;i<=6;i++)
????????{
????????????dp[1][i]=1;
????????}
????????for(int?i=1;i<=n;i++)
????????{
????????????for(int?j=i;j<=6*n;j++)
????????????{
????????????????for(int?k=1;k<=6;k++)
????????????????{
????????????????????if(j>=k)
????????????????????{
????????????????????????dp[i][j]+=dp[i-1][j-k];
????????????????????}
????????????????????if(i==n)
????????????????????{
????????????????????????result[j-i]=dp[i][j]/x;
????????????????????}
????????????????}
????????????}
????????}
????????return?result;
????}
}
總結(jié)
以上是生活随笔為你收集整理的【剑指offer】面试题60:n个骰子的点数(Java)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: centos 7 网络设置与图像化界面下
- 下一篇: Mybatis中example的使用