Question

Is there some way to calculate the inverse factorials of real numbers?

For example - 1.5 ! = 1.32934039

Is there some way to obtain 1.5 back if I have the value 1.32934039?

I am trying

http://www.wolframalpha.com/input/?i=Gamma^(-1)[1.32934039]

but that is a fail.

Was it helpful?

Solution

Using wolframalpha.com, you can ask for

Solve[Gamma[x+1]==1.32934039,x]

As mentioned in the comments, Gamma does not have a unique inverse. True even when you are solving for a conventional factorial, e.g.

Solve[Gamma[x+1]==6,x]

yields several answers, of which one is 3.

Instead of using Gamma[] in WolframAlpha, you can also use Factorial[]:

Solve[Factorial[x]==6,x]
Solve[Factorial[x]==1.32934039,x]

OTHER TIPS

David Cantrell gives a good approximation of Γ-1(n) on this page:

k = the positive zero of the digamma function, approximately 1.461632
c = Sqrt(2*pi)/e - Γ(k), approximately 0.036534
L(x) = ln((x+c)/Sqrt(2*pi))
W(x) = Lambert W function
ApproxInvGamma(x) = L(x) / W(L(x) / e) + 1/2

For integers you can do:

i = 2
n = someNum
while (n != 1):
    n /= i
    i += 1
return (i==1 ? i : None)

The factorial for real numbers has no inverse. You say that "each function must have an inverse". That is incorrect. Consider the constant function f(x)=0. What is f^-1(42)? For a function to be inverse it must be both an injection and a surjection.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top