我对 R 中的 lchoose 函数的理解很简单,就是 lchoose(a,b) = log(choose(a,b))。然而,我发现:
temp <- 7.9999993
k <- 8
choose(temp,k)
[1] 0
lchoose(temp,k)
[1] 0
log(choose(temp,k))
[1] -Inf
所以 lchoose 不是选择函数输出的日志。为什么会这样?
我对 R 中的 lchoose 函数的理解很简单,就是 lchoose(a,b) = log(choose(a,b))。然而,我发现:
temp <- 7.9999993
k <- 8
choose(temp,k)
[1] 0
lchoose(temp,k)
[1] 0
log(choose(temp,k))
[1] -Inf
所以 lchoose 不是选择函数输出的日志。为什么会这样?
在离散情况下(即 离散n
),choose(n,k)
计算一组元素中不同 k 元素子集的数量n
,因此如果k > n
,那么您正在计算一个集合的子集,该集合的元素比相应的集合更多。由于没有这样的子集,因此答案为零。
一般来说,对于n
一个实数,该函数仍然可以计算,但是,该函数在离散值上仍然必须具有相同的含义,因此k>n
该函数的值为零。如果你用实数查看二项式函数的定义n
(见这里),你会发现答案是零,但我希望能以直观的方式解释它。