考虑下面的C函数。
float f(float x, int y)
{
float p, s; int i;
for (s=1, p=1, i=1; i < y; i ++)
{
p*= x/i;
s+=p;
}
return s;
}
对于较大的y值,函数f的返回值最好近似(GATE CS 2003)
(A) x ^ y
(B) e ^ x
(C) ln(1 + x)
(D) x ^ x答案: (B)
说明:函数f()是泰勒级数的实现,用于计算e ^ x
e^x = 1 + x + x^2/2! + x^3/3! + ---
y的值越大,f()将返回e ^ x的精确值。
这个问题的测验