斯特灵数 hdu 3625 Examining the Rooms

来源:互联网 发布:互联网大数据 编辑:程序博客网 时间:2024/05/18 16:14

斯特灵数有两类 ,第一类斯特灵数表示把N个人分成k个圆圈有多少种方法,第二类斯特灵数表示把n个人分成k个集合有多少种方法。区别在于第一类斯特灵数中的集合是有序的(这个有序不是严格意义上的有序,只是代表一个圆圈的有序,比如A -> B -> C组成圆,表示成{A,B,C},这跟{B,C,A}是一样的,但是{A,C,B}跟{A,B,C}就不同),第二类中是无序的。

第一类斯特灵数的公式是 s(n,k) = s(n-1,k-1) + (n-1)*(n-1,k);

第一类斯特灵数的公式是 s(n,k) = s(n-1,k-1) + k*(n-1,k);

我在网上找了很久,才找到这个公式的推导过程。

第一类:s(n,k) 可以看成是从s(n-1,k-1)这种情况上再加一个人进来单独组成一个圆圈,或者是在s(n-1,k)这种情况上随便选一个人,插入到他在圆圈位置上的左边。

第一类:s(n,k) 可以看成是从s(n-1,k-1)这种情况上再加一个人进来单独组成一个集合,或者在在s(n-1,k)这种情况中随便选一个集合,把新加入的这个人丢进去。

代码我就不贴了。。。因为我没写。。。。。只是把斯特灵数看了一下,感觉蛮有用的,希望跟大家共享一下。