Формула Стирлинга - приближённая. При этом обычно ограничиваются ещё более приближённым выражение для неё
пренебрегая поправками вида
При этом точного значения она не даёт никогда. Её ценность в том, что при больших n она даёт малую относительную ошибку. Но, поскольку
растёт куда быстрее
абсолютная ошибка очень быстро возрастает.
Для большинства приложений, в которых востребована замена факториала Стирлингом, величина факториала "сокращается" (как, скажем, при выведении нормального распределения через биномиальное), так что результат имеет не только малую относительную, но и малую абсолютную ошибку.
Если же нужно точное целочисленное значение факториала (зачем?!), то остаётся только перемножать числа непосредственно.
-- Ср мар 02, 2011 16:34:01 --Что до предлагаемой идеи вычислять, скажем,
через
по формуле Стирлинга и приведение через
, то она даст большую ошибку, чем непосредственно
по Стирлингу. Поскольку чем меньше аргумент, тем больше относительная ошибка Стирлинга, а б
ольшая относительная ошибка, умноженная на значение факториала, даст б
ольшую абсолютную ошибку, чем непосредтвенный расчёт по Стирлингу.
Не представляется также осмысленной идея вычислять через бесконечное произведение.
Вот некоторые алгоритмы для гамма-функции:
http://www.rskey.org/gamma.htmhttp://mathworld.wolfram.com/GammaFunction.htmlhttp://functions.wolfram.com/GammaBetaErf/Gamma/06/