python一元多项式
时间: 2024-05-19 07:10:05 浏览: 147
Python中的一元多项式可以使用列表来表示,其中列表的每个元素都是一个二元组,第一个元素表示该项的系数,第二个元素表示该项的次数。例如,多项式2x^3 + 3x^2 - 4x + 1可以表示为[(2, 3), (3, 2), (-4, 1), (1, 0)]。
对于一元多项式,常见的操作包括加法、减法、乘法和求导等。在Python中,我们可以使用循环来实现这些操作。以下是一些常见操作的实现方法:
加法:
```python
def poly_add(p1, p2):
result = []
i, j = 0, 0
while i < len(p1) and j < len(p2):
if p1[i] == p2[j]:
result.append((p1[i] + p2[j], p1[i]))
i += 1
j += 1
elif p1[i] > p2[j]:
result.append(p1[i])
i += 1
else:
result.append(p2[j])
j += 1
while i < len(p1):
result.append(p1[i])
i += 1
while j < len(p2):
result.append(p2[j])
j += 1
return result
```
减法:
```python
def poly_subtract(p1, p2):
result = []
i, j = 0, 0
while i < len(p1) and j < len(p2):
if p1[i] == p2[j]:
result.append((p1[i][0] - p2[j], p1[i]))
i += 1
j += 1
elif p1[i] > p2[j]:
result.append(p1[i])
i += 1
else:
result.append((-p2[j], p2[j]))
j += 1
while i < len(p1):
result.append(p1[i])
i += 1
while j < len(p2):
result.append((-p2[j], p2[j]))
j += 1
return result
```
乘法:
```python
def poly_multiply(p1, p2):
result = []
for term1 in p1:
for term2 in p2:
result.append((term1*term2, term1+term2))
result.sort(key=lambda x: x, reverse=True)
prev_exp = None
i = 0
while i < len(result):
if result[i] == prev_exp:
result[i-1] = (result[i-1] + result[i], result[i-1])
del result[i]
else:
prev_exp = result[i]
i += 1
return result
```
求导:
```python
def poly_differentiate(p):
result = []
for term in p:
if term > 0:
result.append((term*term, term-1))
return result
```
阅读全文