与nm苹果,m盘不空类似

写一个关于递归算法的问题: n个元素的集合{1,2,3....,n}可以划分为若干个非空子集的集合

分两种情况讨论 假定有𝑆(𝑛, 𝑚)种不同方法把n个元素的集合划分成m个非空子集构成的集合, 𝑆(𝑛, 𝑚)种不同划分方法可以分为以下两类: • 先把 n-1 个元素的集合划分成 m 个非空子集,按定义其划分数目为 𝑆(𝑛 − 1, 𝑚), 再将剩下的一个元素插入到 m 个子集中的任意一个,最后把这两步合起来则 可构成 n 个元素集合的 m 划分,总共有𝑚 ∗ 𝑆(𝑛 − 1, 𝑚)中划分: • 先把 n-1 个元素的集合划分成 m-1 个子集,再将剩下的一个元素独立构造成 子集,显然,这两步合起来也可以构成有n个元素集合的m划分,总共有𝑆(𝑛 − 1, 𝑚 − 1)种划分。

𝑆(𝑛, 𝑚) = 𝑚 ∗ 𝑆(𝑛 − 1, 𝑚) + 𝑆(𝑛 − 1, 𝑚 − 1)

if((m==n) ‖ i(m==1)) 
return 1;
if((m>n) ‖ (m==0)) 
return 0;
return m*S(n-1,m)+S(n-1,m-1);
}
全部评论

相关推荐

点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务