2015-04-01 104 views
1

你好,我想知道乘以两个多项式此功能如何乘多项式系数

它用于乘以两个多项式

我想知道什么是发生在这个函数的系数的想法此代码

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

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

MUL()代表乘法功能 聚()代表多项式函数

+4

我投票结束这个问题作为题外话,因为它是关于数学,而不是编程(尝试http://math.stackexchange.com)。 – 2015-04-01 21:09:13

+2

不,这是一个编程问题,我想要一个意味着乘法coefs – 2015-04-01 21:11:53

+0

@MohamedRamzyHelmy你有什么代码?或不管语言? – xsami 2015-04-01 21:21:32

回答

3

当你乘N次方的多项式A与按第M幂多项式B,你会得到导致的(N多项式ç + M)功率,其具有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]

希望实现这样一个简单的公式与循环的不问题在任何编程语言。

0

让我们假设你的系数被存储在两个的阵列A [],B []与系数_ [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]; 
    } 
} 
+0

请你能解释一下代码吗? – 2015-04-02 09:19:37