用java写一个一元稀疏多项式
时间: 2024-10-14 16:14:41 浏览: 25
在Java中,我们可以创建一个简单的稀疏多项式类,它表示只包含非零系数的多项式。这个类通常会有一个内部数据结构来存储项及其对应的值,比如HashMap。下面是一个基本的实现:
```java
import java.util.HashMap;
public class SparsePolynomial {
private HashMap<Integer, Integer> coefficients; // 存储项的索引和值
public SparsePolynomial() {
this.coefficients = new HashMap<>();
}
// 添加项到多项式
public void addTerm(int degree, int value) {
if (value != 0) { // 只添加非零项
coefficients.put(degree, value);
}
}
// 获取多项式的度数
public int getDegree() {
return coefficients.isEmpty() ? -1 : Math.max(coefficients.keySet().toArray(new Integer[0]));
}
// 计算多项式的值
public int evaluateAt(int x) {
int result = 0;
for (int degree : coefficients.keySet()) {
result += coefficients.get(degree) * Math.pow(x, degree);
}
return result;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
for (int degree : coefficients.keySet()) {
if (coefficients.get(degree) != 0) {
sb.append("+" + coefficients.get(degree)).append("x^").append(degree);
}
}
if (sb.length() > 0) {
sb.setCharAt(0, '-'); // 如果不是常数项,则开头加负号
}
return sb.toString();
}
}
阅读全文