使用斯特林的阶乘公式

时间:2010-10-15 00:40:59

标签: c++ formula

我正在尝试编写一个使用斯特林公式计算数字近似因子的代码。

以下是计算它的行​​:

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 个答案:

答案 0 :(得分:2)

尝试包含相应的头文件:

#include <cmath>

如果这没有帮助,请注意pow()的实现位于std命名空间中。所以:

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

答案 1 :(得分:1)

记住斯特林的公式!分数(n / e)中的分母当然是欧拉e,e = 2.71828(5位数)。请参阅:http://en.wikipedia.org/wiki/E_(mathematical_constant)。