Как я могу рассчитать факториал двойного в с ++ - PullRequest
2 голосов
/ 07 марта 2012

Я надеюсь, что где-нибудь есть библиотечная функция, которая может сделать это. И да, очень важно, чтобы это был факториал двойного значения (то есть он должен работать с нецелыми значениями).

Ответы [ 3 ]

4 голосов
/ 07 марта 2012

Стандартная библиотека C99 содержит гамма-функцию, double tgamma(double).Это тесно связано с факториалом, поэтому вы можете определить:

#include <cmath>

double factorial(double x) {return std::tgamma(x+1);}

Это должно быть доступно в любой реализации C ++ 11, но не обязательно в реализации C ++ 03, которая можеттолько включить библиотеку C90.Если ваша реализация не имеет его, то библиотека Boost.Math делает.

2 голосов
/ 07 марта 2012

Факториал для целых чисел. Вероятно, вы ищете гамма-функцию. По целочисленным значениям Gamma (x) == Factorial (x-1), а гамма определяется для всех чисел. Для этого есть библиотечная функция: tgamma определена в заголовке math.h

2 голосов
/ 07 марта 2012

Определение факториала не может быть определено для нецелых, но общим обобщением является гамма-функция , определенная для всех положительных вещественных чисел и всех отрицательных нецелых чисел.

Библиотека Boost :: Math содержит функцию tgamma () для вычисления этого с реальным вводом и реальным выводом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...