题目:
共有n种图案的印章,每种图案的出现概率相同。小A买了m张印章,求小A集齐n种印章的概率。
参考理解文章
https://blog.csdn.net/okok__TXF/article/details/121099645
https://blog.csdn.net/m0_58245389/article/details/121877031
#include<iostream>
using namespace std;
#include<iomanip>
int main()
{
int n, m;
cin >> n >> m;
double dd[21][21] = { 0.0 };
double P = 1.0 / n;
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
{
if (i == 1)
{
dd[i][j] = 1.0;
for (int k = 1; k < j; k++)
{
dd[i][j] *= P;
}
}
else
{
dd[i][j] = dd[i][j - 1] * (i * P) + dd[i - 1][j - 1] * ((n - (i - 1)) * P);
}
}
}
cout << fixed << setprecision(4);
//for (int i = 1; i <= n; i++)
//{
// for (int j = 1; j <= m; j++)
// {
// cout << dd[i][j] << "\t";
// }
// cout << endl;
//}
cout << dd[n][m];
return 0;
}