R中大数阶乘的计算

Calculation of the factorial of a large number in R

任务:计算一个大数的阶乘。 在P中,阶乘最多只能计算到170。

> factorial(170)
[1] 7.257416e+306

对于大数,发生溢出:

> factorial(171)
[1] Inf
Warning message:
In factorial(171) : value out of range in 'gammafn'

使用它并尝试!您可以使用 lfactorial 来使用 lgamma 而不是 gamma 并获得自然对数。

lfactorial(1536)

使用 gmp 包中的 factorialZ

> gmp::factorialZ(171)
Big Integer ('bigz') :
[1] 1241018070217667823424840524103103992616605577501693185388951803611996075221691752992751978120487585576464959501670387052809889858690710767331242032218484364310473577889968548278290754541561964852153468318044293239598173696899657235903947616152278558180061176365108428800000000000000000000000000000000000000000