人生奧義時刻當然是程序通過100%的時刻啦,哈哈
class Solution {
public:
/**
* @param n an integer
* @return a list of pair<sum, probability>
*/
vector<pair<int, double>> dicesSum(int n) {
// Write your code
double **matrix=new double *[n+1];
for(int i=0;i<=n;i++)
{
matrix[i]=new double[6*n+1];
}
for(int i=0;i<=n;i++)\\初始化0矩陣
{
for(int j=0;j<=6*n;j++)
{
matrix[i][j]=0;
}
}
for(int i=1;i<=6;i++)//初始化骰子爲1的情況
{
matrix[1][i]=1.0/6;
}
if(n>=2)//骰子數大於2的情況,依次有上一排概率推出
{
for(int i=2;i<=n;i++)
{
for(int j=i;j<=6*i;j++)
{
for(int k=1;k<=6;k++)
{
if((j-k>=i-1))
{matrix[i][j]+=matrix[i-1][j-k]*1.0/6;}
else
break;
}
}
}
}
vector<pair<int,double>> result;
for(int i=n;i<=6*n;i++)
{
pair<int,double> a;
a=make_pair(i,matrix[n][i]);
result.push_back(a);
}
return result;
}
};