Numba не может скомпилировать целые числа произвольной точности Python, поэтому, если вы хотите найти точные факториалы для целых чисел больше 20, что при 2432902008176640000 является максимальным значением, которое может поместиться в 64-битное целое— тогда Numba, к сожалению, не поможет.
Если вам не нужно точное целое число для больших факториалов, вы можете определить свою функцию-факториал как эквивалент math.gamma(n+1)
, который компилируется под Numba и имеет плавающий -точечный вывод. Но даже это работает только до 170!
, которое является наибольшим, которое может поместиться в 64-битное число с плавающей запятой.
Без чисел произвольной точности более крупные факториалы должны быть представлены в виде журнала. Для этого вы можете использовать math.lgamma(n+1)
, который также компилируется под Numba и может возвращать log(n!)
для очень больших n.