【问题标题】:Number of Different Combination Possible?可能有多少种不同的组合?
【发布时间】:2014-09-15 07:29:02
【问题描述】:

给定的位置数为 m,位数为 n。您必须以每个数字至少出现一次的方式填充这 m 个位置。

例如

给定 m 为 4 和 n 为 3,因此您有 4 个位置和 3 个数字。现在,这个可能的组合总数为 36。

举个简单的例子:

m=3 和 n=2(a,b 假设) 那么可能的组合是

aba aab abb bab bba baa

因此只有 6 种组合是可能的。是否有任何公式,因为我需要找到可能的组合数量?

【问题讨论】:

  • 这个问题似乎跑题了,因为它是关于数学而不是编程的。
  • 我可以在这里闻到一些 DP。可能一些递归函数可以解决这个问题。

标签: math combinations permutation


【解决方案1】:

回答问题

答案是n!S(m,n),其中SStirling numbers of the second kind

例如,对于m=4, n=3n!=6S(4,3)=6,那么n!S(m,n)=36 就是预期的答案。

为什么要用这个公式?

第二类斯特林数S(m,n) 计算将一组m 元素划分为n 非空子集的方法数。所以对于这个问题,S(m,n) 计算将m 场所划分为n 组的方式的数量,每个组对应一个数字。分区后,我们应该为每个组指定一个数字,并且有n!的方法可以做到这一点。因此,答案是n!S(m,n)

【讨论】:

  • +1:感谢您的精彩解释 - 今天我知道了什么是“第二类斯特林数”!
  • 很棒的解释:)
猜你喜欢
  • 2015-04-09
  • 2018-09-06
  • 2011-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多