Используя wolframalpha.com, вы можете запросить
Solve[Gamma[x+1]==1.32934039,x]
Как упоминалось в комментариях, у гаммы нет уникального обратного. Верно, даже когда вы решаете обычный факториал, например
Solve[Gamma[x+1]==6,x]
дает несколько ответов, один из которых равен 3.
Вместо использования Gamma [] в WolframAlpha вы также можете использовать Factorial []:
Solve[Factorial[x]==6,x]
Solve[Factorial[x]==1.32934039,x]
Дэвид Кантрелл дает хорошее приближение Γ -1 (n) на этой странице :
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
Для целых чисел вы можете:
i = 2
n = someNum
while (n != 1):
n /= i
i += 1
return (i==1 ? i : None)
Факториал для действительных чисел не имеет обратного. Вы говорите, что «у каждой функции должна быть обратная». Это неверно. Рассмотрим постоянную функцию f (x) = 0
. Что такое f ^ -1 (42)
? Чтобы функция была инверсной, она должна быть одновременно инъекцией и сюръекцией .