[英]Evaluating polynomial using python
我正在尝试创建自己的多项式类。 我想做一个可以评估给出x的多项式的函数。
到目前为止,我已经知道了,但是它给我的答案是不正确的,我不知道为什么? 使用列表输入多项式。 例如[2,0,1,-7,13]将是2x ^ 4 + x ^ 2-7x + 13
class Polynomial:
def __init__(self, coefficients):
self.coeffs=coefficients
def evaluate(self, x):
sum = 0
for i in range(len(self.coeffs)-1,0,-1):
sum+=self.coeffs[i]*(x**i)
return sum
您使用的i
值对索引和指数均不正确。 您实际上是在评估逆系数系数多项式,因此对Polynomial([2,3,4])
评估结果实际上是对Polynomial([4,3,2])
的正确值。
这是我定义evaluate
:
def evaluate(self, x):
return sum(coef * x**exp for exp, coef in enumerate(reversed(self.coeffs)))
请注意,如果希望Polynomial
对象可调用(如注释示例中的p1(4)
所示),则应重命名evaluate
函数__call__
。
预期该代码的缩进块存在错误。 要重现错误,请确保包括缩进块:
class Polynomial:
def __init__(self, coefficients):
self.coeffs=coefficients
def _call_(self, x):
return sum(coef * x**exp for exp, coef in enumerate(reversed(self.coeffs)))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.