Формула Стирлинга будет полезна, только если у вас будет дополнительная асимптотическая информация, такая как k ~ n / 3
или k ~ log n
.Не имея дополнительной информации о вашей конкретной проблеме, вы не будете черпать информацию о формуле Стирлинга.
Для вашей задачи, как указано, наиболее прямой способ вычисления C (n, k), когда k и n большие (и даже когда они невелики), это использовать
log C(n, k) = log (n!) - (log (k!) + log ((n - k)!))
и
n! = gamma(n + 1).
Дело в том, что довольно легко прийти с реализацией гаммы журнала, и вы тогдаесть
C(n, k) = exp (f(n + 1) - f(k + 1) - f(n - k + 1))
где f = log gamma
.
Вы можете найти численные алгоритмы для вычисления гаммы журнала в Числовые рецепты , старая версия доступна там , и вы найдете пример реализации в главе 6.