Доброе время суток, товарищи математики.
Решил апгрейдить свой калькулятор (oncalc.net) добавить возможность вычисления факториала вещественных чисел. Вычислять решил при помощи формулы Стирлинга. Написал функционал, начал тестить. Проверял я следующим образом, подсчитывал факториалы целых чисел через формулу стирлинга и простым методом (1*2*...*n) и сравнивал результаты. И что у меня получилось (результаты округляю):
До факториала 17 идет ровно, а потом расхождение начинает рости:
Код:
15!
(1*2*...*15) = Ф.Стирлинга = 1307674368000
16!
(1*2*...*16) = Ф.Стирлинга = 20922789888000
17!
(1*2*...*17): 355687428096000
Ф.Стирлинга: 355687428096045
18!
(1*2*...*18): 6402373705728000
Ф.Стирлинга: 6402373705727531
.. .. ..
25!
(1*2*...*25): 15511210043330985984000000
Ф.Стирлинга: 15511210043334063846443075
А для больших результатов, больше 1000! там вообще все "страшно" :)
Формула Стирлинга реально такую погрешность дает? Есть ли более точный алгоритм подсчета факториала с вещественным аргументом?