我无法通过factorial(365)
使用R logial来计算365的阶乘,我认为这种逻辑的容量不允许它。我该如何处理其他方法?
答案 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`