📅  最后修改于: 2023-12-03 15:12:02.098000             🧑  作者: Mango
在数学中,多项式是由常数、变量和幂次的和组成的表达式。多项式方程通常可以表示为:
f(x) = a0 + a1 * x + a2 * x^2 + ... + an * x^n
其中,a0 ~ an 是常数系数,x 是未知数。如果多项式的最高次项系数为零,则我们称它为零多项式,这样的式子是没有实数解的。
下面我们将介绍如何使用Python编写一个计算多项式方程的程序。
我们可以通过Python定义一个多项式的类,然后在类中实现多项式的加、减、乘、除等运算。具体来说,我们可以使用Python的列表来存储多项式的每一项系数,然后通过重载运算符,实现多项式的各种运算操作。
下面是一个简单的多项式类实现,包含了多项式的加、减、乘、除、求导等操作:
class Polynomial:
def __init__(self, coeffs):
self.coeffs = coeffs
def __repr__(self):
return "Polynomial({})".format(self.coeffs)
def __add__(self, other):
return Polynomial([a+b for a,b in zip(self.coeffs, other.coeffs)])
def __sub__(self, other):
return Polynomial([a-b for a,b in zip(self.coeffs, other.coeffs)])
def __mul__(self, other):
zero = [0] * (len(self.coeffs) + len(other.coeffs) - 1)
for i in range(len(self.coeffs)):
for j in range(len(other.coeffs)):
zero[i+j] += self.coeffs[i] * other.coeffs[j]
return Polynomial(zero)
def __floordiv__(self, other):
q = [0] * (len(self.coeffs) - len(other.coeffs) + 1)
r = self
while len(r.coeffs) >= len(other.coeffs):
ratio = r.coeffs[-1] / other.coeffs[-1]
q[len(r.coeffs) - len(other.coeffs)] = ratio
r -= (other * Polynomial([0] * (len(r.coeffs) - len(other.coeffs))) +
Polynomial([ratio] + [0] * (len(r.coeffs) - len(other.coeffs))))
return Polynomial(q)
def __mod__(self, other):
q = self // other
return self - other * q
def derivative(self):
return Polynomial([i*self.coeffs[i] for i in range(1, len(self.coeffs))])
我们可以通过如下代码来实例化一个多项式对象,并进行加、减、乘、除、求导等操作:
p1 = Polynomial([1, 2, 3]) # 1 + 2x + 3x^2
p2 = Polynomial([2, 2]) # 2 + 2x
print(p1 + p2) # Polynomial([3, 4, 3])
print(p1 - p2) # Polynomial([-1, 0, 3])
print(p1 * p2) # Polynomial([2, 6, 10, 6])
print(p1 // p2) # Polynomial([1])
print(p1 % p2) # Polynomial([-2, 2])
print(p1.derivative()) # Polynomial([2, 6])
本文介绍了如何使用Python实现一个多项式类,包含了多项式的加、减、乘、除、求导等操作。通过这个例子,我们可以更好地理解Python中的类和运算符重载。