java一元多项式求和
时间: 2024-09-26 13:01:40 浏览: 35
数据结构(Java语言描述) 案例04 一元多项式的表示及运算.docx
5星 · 资源好评率100%
在Java中,我们可以创建一个简单的`Polynomial`类来表示一元多项式,其中包含多项式的系数及其对应的指数。例如,多项式`3x^2 + 5x + 7`可以表示为`(3, 2), (5, 1), (7, 0)`这样的结构,分别代表系数3、指数2,以此类推。
下面是一个简单的`Polynomial`类示例:
```java
public class Polynomial {
private List<Pair<Integer, Integer>> terms; // 系数和指数组成的列表
public Polynomial() {
this.terms = new ArrayList<>();
}
public void addTerm(int coefficient, int exponent) {
terms.add(new Pair<>(coefficient, exponent));
}
public double evaluateAt(double x) {
double result = 0;
for (Pair<Integer, Integer> term : terms) {
result += term.getKey() * Math.pow(x, term.getValue());
}
return result;
}
public static Polynomial sum(Polynomial p1, Polynomial p2) {
Polynomial sumPoly = new Polynomial();
for (int i = 0; i < p1.terms.size(); i++) {
sumPoly.addTerm(p1.getTerm(i).getKey(), p1.getTerm(i).getValue());
}
for (int i = 0; i < p2.terms.size(); i++) {
if (!sumPoly.terms.contains(p2.getTerm(i))) { // 避免重复项
sumPoly.addTerm(p2.getTerm(i).getKey(), p2.getTerm(i).getValue());
}
}
return sumPoly;
}
// 其他辅助方法...
}
// Pair类用于存储系数和指数,这里省略了实现
class Pair<K, V> {
K key;
V value;
// 构造方法和getter/setter...
}
```
要计算两个多项式的和,你可以实例化`Polynomial`对象,然后调用`sum`方法:
```java
Polynomial poly1 = new Polynomial();
poly1.addTerm(3, 2);
poly1.addTerm(5, 1);
Polynomial poly2 = new Polynomial();
poly2.addTerm(2, 1);
poly2.addTerm(4, 0);
Polynomial sum = Polynomial.sum(poly1, poly2); // sum现在包含了两个多项式的和
double result = sum.evaluateAt(2.0); // 评估结果
```
阅读全文