O(log n)方法来计算(多项式)^ n的系数

时间:2018-07-14 07:16:32

标签: polynomials exponent

我有一个多项式,系数存储为数组。

int n,k,t,s[20000];
int l(int x,int y)
{
    int i,m=0;
    if(x==0)return 1;
    for(i=0;i<t;i++)
    if(s[i]!=0&&i<=y)
    {
        int u=l(x-1,y-i);
        int o=u*s[i]%42043;
        m+=o;
        if(x==n&&k==y)printf("%d ",o);
    }
    return m%42043;
}

我的问题是此代码太慢。 我想做的是如果我有多项式C 系数为0 1 1 0 1 2 1 C将是

x^5+x^4+x^2+2*x+1

然后我计算它的k次幂,将是

x^10+2*x^9+x^8+2*x^7+6*x^6+6*x^5+3*x^4+4*x^3+6*x^2+4*x+1

然后我得到X的所有幂的所有系数都小于n,在这种情况下为6。因此,我得到

6+6+3+4+6+4+1 = 30

有O(log n)方法吗?

0 个答案:

没有答案