使用 C++ 查找配对人的方法数量

c++server side programmingprogramming

为了解决 n − 人数的问题,现在每个人可以单独出现,也可以成对出现,所以我们需要找到这些人可以配对的总方法数。

输入:3

输出:4

解释:[ {1}, {2}, {3},], [{1, 2}, {3}], [{1}, {2, 3}], [{1, 3}, {2}] 这四种方法是我们可以配对这 3 个人的唯一方法。

输入:6

输出:76

寻找解决方案的方法

在此方法中,我们将使用 Young Tableau 公式来计算此问题,我们将使用的公式是 −

A[n] = A[n-1] + (n-1) * A[n-2]

示例

上述方法的 C++ 代码

#include <bits/stdc++.h>
using namespace std;
int Young_Tableau(int n){
    int A[n + 1];// 存储答案。
    A[1] = 1; // 初始值
    A[2] = 2; // 初始值
    for (int i = 3; i <= n; i++) { // 使用"Young Tableau"的公式计算答案
        A[i] = A[i - 1] + (i - 1) * A[i - 2];
    }
    return A[n]; // 返回答案
}
int main(){
    int n = 6;
    cout << Young_Tableau(n);
    return 0;
}

输出

76

上述代码的解释

在上述方法中,我们只需应用 Young Tableau 的公式,其中我们需要找到前两个数字。现在我们可以将这些数字存储在数组索引中。通过订阅,我们可以为我们的公式获得它们的值,从而计算出我们的答案。

结论

在本教程中,我们解决了一个问题,以找到几种配对人的方法。我们还学习了这个问题的 C++ 程序以及我们解决这个问题的完整方法(正常)。我们可以用其他语言(如 C、java、python 和其他语言)编写相同的程序。我们希望您觉得本教程有用。


相关文章