如何乘以多项式系数

how to multiply Polynomials coefficients

你好我想知道这个函数将两个多项式相乘的想法

它用于将两个多项式相乘

我想知道这个函数对这段代码中的系数发生了什么

mul(poly((10, 20, 30)), poly((1, 2, 3))).coefs == (10, 40, 100, 120, 90)

(10, 40, 100, 120, 90) 是怎么出来的?

mul()代表乘法函数 poly() 代表多项式函数

当您将多项式 A 的 N 次方与多项式 B 乘以 M 次方时,您将得到 (N+M) 次方的结果多项式 C,其具有 N+M+1 个系数。第K个结果系数:

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]

我希望用任何编程语言实现这么简单的带循环的公式都没有问题。

假设您的系数存储在两个数组 A[]、B[] 中,其中 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];
    }
}