【发布时间】:2014-07-28 22:13:50
【问题描述】:
我在 C++ 中编写了一个“n 选择 k”函数,它通过 Rcpp 与 R 交互。出于某种原因,我收到“除以零”运行时错误。当我尝试评估 30 选择 2 时会发生这种情况。
我尝试过手动评估每一行(使用 evalCpp),但我仍然对除以零的位置感到困惑。也许有人可以向我指出这一点,或者建议一种更好的写 n 选择 K 的方法?
代码如下:
// [[Rcpp::export]]
int chooseC(int n, int k) {
if (k > n) {
std::cout << "Error. k cannot be greater than n." << std::endl;
return 0;
}
int factN = std::tgamma(n + 1);
int factK = std::tgamma(k + 1);
int factDiff = std::tgamma(n - k + 1);
return factN/(factK*factDiff);
}
【问题讨论】:
标签: c++ r statistics combinations rcpp