人生奥义时刻当然是程序通过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;
}
};