本文主要是介绍The second kind of Stirling number(连载),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
又要开新坑了,这可是个庞大工程。不定期更新!!!
Definition: Stirling number of the second kind is the number of ways to partition a set of n objects into k non-empty subsets and is denoted by S(n,k)
S(n,k)=S(n−1,k−1)+kS(n−1,k)n≥k≥1
S(0,0)=1S(n,0)=S(0,k)=0
Generating functions:
#include <stdio.h>
#include <algorithm>
using namespace std;
const int prime = 1000000007;
int main() {int n, k;scanf_s("%d%d", &n, &k);int *S = new int[n + 2];//Stirling S(n,k)->S(k)//S(n, k) = S(n - 1, k - 1) + k * S(n - 1, k);S[0] = 0; S[1] = 1;//n=1for (int i = 2; i <= n; ++i) {S[i] = 0;int sj_pre = S[0], sj = S[1];for (int j = 1; j <= i; ++j) {S[j] = sj_pre + j*sj;sj_pre = sj;sj = S[j + 1];}}for (int i = 0; i <= n; ++i)printf("%d ", S[i]);system("pause");return 0;
}
这篇关于The second kind of Stirling number(连载)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!