## java实现多项式的加法 原

忘川-hsm

``````/**
* 用于对多项式的每一项进行分类
* @author steven
*
*/
public class Point {
private int coefficient;//系数
private int exponent;//指数

public Point(int coefficient, int exponent) {
super();
this.coefficient = coefficient;
this.exponent = exponent;
}
public Point(){

}
/**
* 获取系数
* @return
*/
public int getCoefficient() {
return coefficient;
}
public void setCoefficient(int coefficient) {
this.coefficient = coefficient;
}
//获取指数
public int getExponent() {
return exponent;
}
public void setExponent(int exponent) {
this.exponent = exponent;
}
}
``````

``````import java.util.ArrayList;
/**
* 多项式
* @author steven
*
*/
public class Multinomial {
private ArrayList<Point> terms=new ArrayList<Point>();

public ArrayList<Point> getTerms() {
return terms;
}

public void setTerms(ArrayList<Point> terms) {
this.terms = terms;
}
/**
* 重写toString方法主要是为了输出查看
*/
@Override
public String toString() {
StringBuffer sb=new StringBuffer("");
for (Point point : terms) {
sb.append(point.getCoefficient()+"X"+point.getExponent()+"+");
}
return sb.substring(0, sb.length()-1);
}
}
``````

``````public class Multinomials {
/**
* 多项式的加法
* @param multinomialA
* @param multinomialB
* @return
*/
public static Multinomial Add(Multinomial multinomialA,Multinomial multinomialB){
int i=0;//用于遍历multinomialA
int j=0;//用于遍历multinomialB
Multinomial multinomialC=new Multinomial();
Point pointA=null;
Point pointB=null;
for(;i<multinomialA.getTerms().size()&&j<multinomialB.getTerms().size();){
pointA=multinomialA.getTerms().get(i);//获取multinomialA对应位置的值
pointB=multinomialB.getTerms().get(j);//获取multinomialB对应位置的值
//比较指数，根据指数执行不同的命令
if(pointA.getExponent()>pointB.getExponent()){
i++;
}else if(pointA.getExponent()<pointB.getExponent()){
j++;
}else{
pointA.setCoefficient(pointA.getCoefficient()+pointB.getCoefficient());
//pointA.setExponent(pointA.getExponent()+pointB.getExponent());
i++;
j++;
}
}
if(j!=multinomialA.getTerms().size()){//multinomialA遍历完成
for(;j<multinomialB.getTerms().size();j++){
pointB=multinomialB.getTerms().get(j);
}
}
if(i!=multinomialA.getTerms().size()){//multinomialB遍历完成
for(;i<multinomialA.getTerms().size();i++){
pointA=multinomialA.getTerms().get(i);
}
}
return multinomialC;
}
/**
* 测试类
* @param args
*/
public static void main(String[] args) {
Point a=new Point(5,8);
Point b=new Point(6,7);
Point c=new Point(-1,8);
Point d=new Point(2,1);
Multinomial multinomialA=new Multinomial();
Multinomial multinomialB=new Multinomial();
Multinomial multinomialC= Multinomials.Add(multinomialA, multinomialB);
System.out.println(multinomialC.toString());

}
}
``````

### 忘川-hsm

Java jdk实现的CRC32算法的多项式是什么啊？

CRC32算法有一个很重要的东西貌似是 多项式，Linux solaris Java等他们的多项式都不一样 有谁知道Java jdk实现的CRC32算法的多项式是什么吗？

xiaoskery
2013/02/22
883
1

2018/07/03
0
0
JAS 2.5.4821 发布，Java 代数系统

Java Algebra System 2.5.4821 发布，此版本更新内容如下： brings the solvable polynomial common divisor package edu.jas.fd in a partially usable condition The definition of great......

oschina
2014/04/24
1K
2
【译】在java中，字符串的加法是如何实现的？

coffeescript
2013/01/04
536
1
JAX-WS Customization

xpbug
2014/04/29
0
0

30分钟前
0
0
Python 打开目录与指定文件

Python打开外部文件有很多方法， os.popen打开外部程序，但发现只能打开文件所在目录的文件 os.system可打开外部文件os.system(command) command 要执行的命令，相当于在Windows...

shzwork
32分钟前
2
0
Leetcode # 118:Pascal's Triangle 杨辉三角

118:Pascal's Triangle 杨辉三角 Given a non-negative integer numRows, generate the first numRows of Pascal's triangle. 给定一个非负整数 *numRows，*生成杨辉三角的前 numRows 行。 ......

iCodeBugs
42分钟前
1
0

1.File > Open 找到项目后选择build.gradle文件，点击ok image 2.点击Open as Project image 3.选择本地Gradle以及JDK image 4.点OK完成...

47分钟前
2
0
Python实现斐波那契数列

48分钟前
3
0