The gamma function satisfies

Γ(*x*+1) = *x* Γ(*x*)

and so in principle you could calculate the gamma function for any positive real number if you can calculate it on the interval (0, 1). For example,

So if you’re able to compute Γ(π-3) then you could compute Γ(π).

If *n* is a positive integer ε is some number between 0 and 1, is there a more direct way to express Γ(*n* + ε) in terms of Γ(ε)?

There is when ε is the reciprocal of an integer. For example,

The multiple exclamation marks may look strange if you haven’t seen this notation before. See the previous post for an explanation.

The general equation for integer *k* is

where Π_{k} is a notation for *k*-factorial I suggested in the previous post. A more common notation would be to put !_{(k)} to the right of the argument rather than Π_{k} on the left.

Here’s Python code demonstrating that the equation above holds for randomly selected *n* and *k*.

from operator import mul from functools import reduce from scipy.special import gamma import numpy as np def multifactorial(n, k): return reduce(mul, range(n, 0, -k), 1) def f1(n, k): return gamma(n + 1/k) def f2(n, k): return multifactorial(k*n - k + 1, k)*gamma(1/k)/k**n np.random.seed(20211014) for _ in range(1000): n = np.random.randint(1, 50) k = np.random.randint(1, 50) a, b = f1(n,k), f2(n, k) assert( abs(a/b - 1) <= 1e-10 )