数组中最大组合的算法

时间:2013-02-02 19:15:07

标签: java arrays algorithm math

我有一个数组,例如长度为4个元素 不,我想知道在使用3个digets时如何计算可能的组合。

例如:

3 6 2
3 6 8
6 2 8
8 3 2

我的数组是:3 6 2 8

有四种可能性,但我怎样才能以编程方式计算它们?

1 个答案:

答案 0 :(得分:0)

好吧,您实际上正在寻找的是 Choose(n,k) ,这是从k候选人中选择n元素的方式数量

它的公式基本上是Choose(n,k) = n! / (k! * (n-k)!)

背后的理性是:

排序n个项目(n!可能性)然后先选择k的方式的数量。在您选择之后,您不关心第一个k项(k!种可能性)和最后n-k项((n-k)!种可能性)的顺序。

在您的示例中,Choose(4,3) = 4!/(3!*1!) = 4,正如所料。