我在Fortran语言这个功能,我试图重新编码在C#Fortran的功能说明
C ****************************************************************
C FUNCTION POLY
C*****************************************************************
FUNCTION POLY(N,A,X)
DIMENSION A(N)
C
POLY = 0.
L = N
DO 1 K = 1,N
POLY = POLY*X + A(L)
1 L = L-1
RETURN
END
C*****************************************************************
我发现DIMENSION A(N)
创建N
值的向量,但我们已经有了一个变量A
从函数参数,这是否意味着数组值都等于A
?如果是的话那么A(N)
有什么用处。 顺便说任何人都可以只解释请问这个功能,这样做,我可以在C#中重新实现它
FORTRAN代码的评论很好,但是你提供的C#和Python代码是不正确的。 – 2012-04-16 13:46:12
@DavidHeffernan:......以什么方式? – 2012-04-16 13:55:29
在他们给出错误答案的方式。在C#代码中,你的意思是'='而不是'+ ='。你以错误的顺序迭代系数。你想'coeff [n-1]','coeff [n-2]'等。而Python代码与多项式评估无关。你可以通过用'*'替换'+'来修复它,但这不是Horner的方法,效率也不高。这很不错,它只是给出了错误的答案。答案中唯一正确的代码是C伪代码。我相信你可以很容易地纠正它,但就目前而言,这个答案是贬低投票的诱饵。 – 2012-04-16 13:57:38