1,多项式的乘法:
A(x)*B(x) 思路:用A多项式的每一项乘以B多项式的每一项,相加
public class 一维多项式乘积 {
public static void main(String[] args) {
int a[] = { -4, 5, 2, -1, 3, 2 };
int b[] = { -3, -2, 1, 3 };
int R[] = new int[9]; // 9为多项式乘后的项数,利用公式
// a.length+b.length-1=项数,用于储存乘积多项式的每一项的
int m = a.length;
int n = b.length;
int k = R.length;
for (int i = 0; i < m; i++) { // 外层循环,先确定第一个多项式的一个项
for (int j = 0; j < n; j++) { // /内层循环遍历第二个多项式的每一项
R[i + j] += a[i] * b[j];
}
}
for (int i = 0; i < k; i++) { //输出
System.out.println(R[i]);
}
}
}
2,多项式的除法
A(x)/B(x) 思路:A除以B得到余数,在用A将B*余数减去。。。。等等
public class 一维多项式的除法 {
public static void main(String[] args) {
double a[] = { -3.0, 6.0, -3.0, 4.0, 2.0 };
double b[] = { -1.0, 1.0, 1.0 };
double R[] = new double[3];
double L[] = new double[2];
int m = a.length;
int n = b.length;
int k = R.length;
int l = L.length;
int ll = m - 1;
int mm;
for (int i = k; i > 0; i--) {
R[i - 1] = a[ll] / b[n - 1]; //得到多项式系数
mm = ll;
for (int j = 1; j <= n - 1; j++) { //遍历A多项式减去之前得到的余数*B多项式
a[mm - 1] -= R[i - 1] * b[n - j - 1];
mm -= 1;
}
ll -= 1;
}
for (int i = 0; i < l; i++) { //余数项系数
L[i] = a[i];
}
for(int i=0;i<=2;i++){ //输出系数
System.out.println("R("+i+")="+R[i]);
}
System.out.println();
for(int i=0;i<=1;i++){ //输出余数
System.out.println("L("+i+")="+L[i]);
}
}
}