Java实现数组形式的多项式加法、减法、乘法、相除运算
java实现的多项式加法,减法,乘法,除法运算,其中多项式的表示形式为按幂从低到高的系数数组,数组的长度即是多项式的幂
即 数组{1,2,3,4} 表示多项式4x3+3x2+2x+1
运算在工具类Polyn中进行 初始化Polyn必须要传两个参数 即被除数和除数
其中加法,减法和乘法是静态方法 不需实例即可使用
除法需要产生商和余数 所以必须要实例化后才可进行运算
除法的算法大致是:
1、用被除数的最大项除以除数最大项,得多项式p1
2、用p1乘除数,得多项式p2
3、被除数减p2,得p3
4、如果p3的幂小于除数,则输出余数为p3,商为所有p1之和
否则以p3作为新的被除数,转1
初步写的程序如下,没做错误处理和全方位测试,留以后有时间进行。
/**
*
* @author knightzhuwei
*
*/
import java.util.Arrays;
class Polyn{
private double[] dividend;
private double[] divisor;
private double[] result;
private double[] remainder;
public Polyn(double[] dividend,double[] divisor){
this.dividend=dividend;
this.divisor=divisor;
}
//加法 逐项相加 没啥好说的
public static double[] addPolyn(double[] a,double[] b){
double[] heigher=a.length>b.length?a:b;
double[] lower=a.length>b.length?b:a;
double[] res=new double[heigher.length];
for(int i=0;i<heigher.length;i++){
if(i<lower.length){
res[i]=heigher[i]+lower[i];
}
else{
res[i]=heigher[i];
}
}
return res;
}
//减法 逐项想减 稍麻烦一些 最后如果高位是0还要处理
public static double[] subPolyn(double[] a,double[] b){
double[] heigher=a.length>=b.length?a:b;
double[] lower=a.length>=b.length?b:a;
double[] res=new double[heigher.length];
if(heigher==a){
for(int i=0;i<heigher.length;i++){
if(i<lower.length){
res[i]=heigher[i]-lower[i];
}
else{
res[i]=heigher[i];
}
}
}else{
for(int i=0;i<heigher.length;i++){
if(i<lower.length){
res[i]=lower[i]-heigher[i];
}
else{
res[i]=-heigher[i];
}
}
}
int k=res.length-1;
for(;res[k]==0.0&&k>0;k--);
相关文档:
Socket传输模式
Sockets有两种主要的操作方式:面向连接的和无连接的.面向连接的sockets操作就像一部电话,他们必须建立一个连接和一人呼叫.所有的事情在到达时的顺序和他们出发时的顺序时相同.无连接的sockets操作就像是个邮件投递,,没有什么确保,多个邮件可能在到达时的顺序和出发时的顺序不相同.
到底用哪种模式是邮应 ......
java.applet 提供创建Applet的类以及用于Applet和Applet上下文(Applet Context)通信的类。
java.awt 包含所有创建用户接口(界面)、绘制图像的类。
java.awt.color 提供颜色空间的类
java.awt.datatransfer 提供应用内和应用间传输数据的接口和类。
java.awt.dnd 拖拽功能支持类库(拖拽是在许多GUI提供的一种在两个 ......
NVelocity是Java模板引擎Velocity的.Net版本。NVelocity目前官方版本为0.42。官方地址:http://nvelocity.sourceforge.net/,原作者已经申明不再对NVelocity做技术支持了,所以sourceforge上NVelocity版本一直是0.42不再有更新了。不过目前NVelocity已经有1.0的版本了,是由castleproject项目维护的。NVelocity.dll能在cast ......
上学时很多问题的答案,可以从下文找到
JAVA语言学校的危险性
作者:Joel Spolsky
译者:阮一峰
原文: http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html
译文地址:htt ......