您好我想知道将两个多项式乘以此函数的想法
它用于乘以两个多项式
我想知道这个函数对这段代码中的系数发生了什么
mul(poly((10, 20, 30)), poly((1, 2, 3))).coefs == (10, 40, 100, 120, 90)
(10,40,100,120,90)是怎么出来的?
mul()代表乘法函数 poly()代表多项式函数
答案 0 :(得分:3)
当你将N次幂的多项式A乘以多项式B乘以M次幂时,你得到(N + M)次幂的结果多项式C,其具有N + M + 1个系数。 Kth结果系数:
C[k]{k=0..N+M} = Sum(A[i] * B[k - i]){find proper range for i}
N = 3和M = 3的例子:
C[5] = A[3]*B[2] + A[2]*B[3]
我希望在任何编程语言中实现这样一个带循环的简单公式都不是问题。
答案 1 :(得分:0)
假设您的系数存储在两个数组A [],B [] in中,其中coeff [0]为零度项,并将结果存储在C中。
// degree of result
int deg=A.length+B.length-2;
int C[] = new int[deg+1];
// initialise to zero
for(i=0;i<=deg;++i) {
C[i]=0;
}
for(i=0;i<A.length;++i) {
for(j=0;j<B.length;++j) {
C[i+j] += A[i] * B[j];
}
}