Entringer Number 是一个特殊的数字,它等于{1,2,3,…n + 1}的排列数目,从K + 1开始,通过减少然后增加值来更新K + 1。
恩特林格数的值使用以下公式表示:
递归关系
E(n, k) = E(n,k-1)+ E(n-1,nk)
基本值为
E(0,0)= 1
E(n,0)= 0
我们可以使用以下方式找到Entringer号码:
N = 5,k = 3
E(5,3)= 14
#include <iostream> using namespace std; int EntringerNumber(int n, int k) { if (n == 0 && k == 0) return 1; if (k == 0) return 0; return EntringerNumber(n, k - 1) + EntringerNumber(n - 1, n - k); } int main() { int n = 5, k = 3; cout<<"The value of E("<<n<<", "<<k<<") = "<<EntringerNumber(n, k); return 0; }
The value of E(5, 3) = 14