2014-12-13 15 views
0

Мое понимание функции lchoose в R просто lchoose (a, b) = log (выберите (a, b)). Однако, я обнаружил, что:Функция lchoose в R

temp <- 7.9999993 
k <- 8 
choose(temp,k) 
[1] 0 
lchoose(temp,k) 
[1] 0 
log(choose(temp,k)) 
[1] -Inf 

Так lchoose не войти в функцию выбора выхода. Почему это происходит?

ответ

1

В дискретном случае (т.е. дискретный n), choose(n,k) вычисляет число различных подмножеств к-элемент из множества n элементов, так что если k > n, то вы счетные подмножества множества, которые имеют больше элементов, что соответствующие задавать. Поскольку таких подмножеств нет, тогда ответ равен нулю.

В общем случае для n, который является действительным числом, функция все равно может быть вычислена, но функция все равно должна иметь то же значение по дискретным значениям, поэтому для k>n функция имеет значение 0. Если вы посмотрите на определение биномиальной функции с вещественным n (see here), вы увидите, что ответ будет равен нулю, но я попытался объяснить его, надеюсь, интуитивно.

+0

Это не то, что говорит '? Lchoose'. –

+0

@BondedDust, что вы имеете в виду? – kolonel

+0

На странице справки указано, что для n определено любое действительное число, а k - целое число. –