哪个递归函数更适合计算组合?

时间:2019-04-16 12:17:02

标签: c++ recursion combinations

我写了两个函数来计算一个组合。 第一个仅用于两倍,但速度更快。 (+不太精确的结果。) 第二个接近组合的含义。

有没有更好的方法?还是只是视情况而定?

//only for double
double Combination_(double n, double r) {
    if (r == 0) 
        return 1;
    else if (n != 0 && r != 0) 
        return (n / r) * Combination_(n - 1, r - 1);

}
int Combination(int n, int k)
{
    if (k == 1) 
        return n;
    else if (n == k) 
        return 1;
    else  // recursive case: n>k and k>1
        return Combination(n - 1, k - 1) + Combination(n - 1, k);
}

0 个答案:

没有答案