二项式系数的 R 函数

问题描述 投票:0回答:1

我正在尝试使用非整数

k
来计算二项式系数,就像 Python 中的
sympy.functions.combinatorial.factorials.binomial
所做的那样。

根据二项式系数的定义,我定义了一个函数:

binomial <- function(n, k) {
    return(gamma(n+1)/(gamma(k+1)*gamma(n-k+1)))
}

但是,当n很大时,这不起作用,因为计算时会产生很大的数字。所以,我想问一下有什么功能可以用吗?

谢谢!

r sympy
1个回答
1
投票

lgamma
函数(伽马的对数)正是为这种计算而存在:

binomial <- function(n, k) {
  return(gamma(n+1)/(gamma(k+1)*gamma(n-k+1)))
}


binomial(2500, 100)
#NaN


binomial2 <- function(n, k) {
  return(exp(lgamma(n+1)-(lgamma(k+1)+lgamma(n-k+1))))
}


binomial2(2500, 100)
#[1] 8.963002e+180
© www.soinside.com 2019 - 2024. All rights reserved.