因子与R

时间:2018-03-09 10:46:37

标签: r factorial

我无法通过factorial(365)使用R logial来计算365的阶乘,我认为这种逻辑的容量不允许它。我该如何处理其他方法?

2 个答案:

答案 0 :(得分:2)

您可以使用lgamma(x+1)获取factorial的自然日志。

factorial(365)
# [1] Inf
# Warning message:
# In factorial(365) : value out of range in 'gammafn'
lgamma(366)
# 1792.332
# convince yourself that this works:
x <- 2:10
format(factorial(x), scientific = FALSE) == format(exp(lgamma(x + 1)), scientific = FALSE)
[1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE

浮点数学有时会让你遇到麻烦,但lgamma(366) <{1}}是准确的ln(factorial(365))

答案 1 :(得分:0)

如果要大量使用,请尝试使用lfactorial R.base函数。或lgamma

factorial(365)
[1] Inf
Warning message:
In factorial(365) : value out of range in 'gammafn'
> lfactorial(365)
[1] 1792.332
> lgamma(365+1)
[1] 1792.332`