Используя факториальную формулу Стирлинга - PullRequest
0 голосов
/ 15 октября 2010

Я пытаюсь написать код, который вычисляет приблизительный факториал числа по формуле Стирлинга.

Вот строка, которая его вычисляет:

appFact = pow(exp, -num) * pow(num, num) * sqrt(2 * num * PI);

Ошибка появляется при pow (exp, -num) с подчеркнутым красным pow.

IntelliSense: no instance of overloaded function "pow" matches the argument list 25

Переменные объявлены как:

float num, num2, num3, num4, MEAN, stanDev, VARI, appFact, exp; 
readFile >> num >> num2 >> num3 >> num4;  
appFact = pow(exp, -num) * pow(num, num) * sqrt(2 * num * PI); 

Ответы [ 2 ]

2 голосов
/ 15 октября 2010

Попробуйте включить соответствующий заголовочный файл:

#include <cmath>

Если это не поможет, обратите внимание, что реализация pow() находится в пространстве имен std. Итак:

appFact = std::pow(exp, -num) * std::pow(num, num) * std::sqrt(2 * num * PI);
1 голос
/ 11 мая 2011

Помните формулу Стерлинга! Знаменатель в дроби (н / е), конечно, является е Эйлера, е = 2,71828 (5 цифр). Смотри: http://en.wikipedia.org/wiki/E_(mathematical_constant).

...