我想在Python中编写一个程序,用户可以定义多项式和系数(a,b,c)的deegre。当程序使用这些数据创建一个多项式表达式时,我想像函数一样使用它,因为我需要将它用于其他操作。我怎么才能得到它?例如,当我有多项式= x ^ n + a ^ n-1 + b ^ n-2 + c ^ -3时,我想在多项式(x)中使用它来计算值。
现在创建多项式方法看起来:
def polynomial(n,a,b,c):
return a*x**n+b*x**3-c*x
答案 0 :(得分:1)
class Polynomial:
def __init__(self, coeficents, degrees=None):
if degrees = None:
self.degree = list(reversed(range(len(coeficents))))
else:
self.degree = degrees
self.coeficents = coeficents
def __call__(self, x):
print(self.coeficents)
print(self.degree)
return sum([self.coeficents[i]*x**self.degree[i] for i in range(len(self.coeficents))])
p = Polynomial([1,2,4],[10,2,0])
print(p(2))
这将计算x^10 + 2x^2 + 4
处的多项式x = 2
。应该非常清楚如何使用您的示例。
答案 1 :(得分:-1)
最好的策略是不要传入n,但是你需要传入x。您应该将系数作为列表传递。您不需要传入n,因为它是根据列表的长度计算的。
def poly(coefs, x):
result=0
N=len(coefs)
n=0
while N-n>0:
result+=coefs[n]*(x**(N-n-1))
n+=1
return result
因此,如果你想计算,例如x ^ 2 + 3x -5,其中x = 5,你可以使用这一行:
print(poly([1,3,-5], 5))