zoukankan      html  css  js  c++  java
  • 多项式笔记1

    多项式基础

    一个以(x)为变量的多项式定义在一个代数域(F)上,可以写作:

    [A(x) = sum_{i = 0} ^ n a_i x^i ]

    其中(a_i in F)

    对于一个多项式(f(x)),其最高次项的次数为这个多项式的,记作(deg{f})

    多项式加法

    有两个多项式(A(x)和B(x)),且(deg{A} = n,deg{B} = m),那么:

    [C(x) = A(x) + B(x) = sum_{i = 1} ^ {max(n,m)} (a_i +b_i) x ^ i ]

    减法同理。

    多项式的加减法可以在(O(n))的时间复杂度内求出。

    多项式乘法

    有两个多项式(A(x))(B(x)),且(deg{A} = deg{B} = n)

    [C(x) = A(x)B(x) = sum_{i = 0} ^ {n - 1} sum_{j = 0} ^ {n - 1} a_i b_j x^{i + j} = sum_{i = 0} ^ {2n - 2} c_i x ^ i ]

    卷积

    (a,b)是两个数列,那个两个数列的卷积(c)定义为

    [c_k = sum_{i + j = k} a_i b_j Leftrightarrow c_k = sum_{i = 0} ^ k a_i b _{k - i} ]

    多项式的表示

    系数表示法

    对于一个多项式(A(x),deg{A} = n),其系数组成了一个向量(a = (a_0,a_1,a_2,a_3, cdots a_{n - 1}))

    点值表示法

    对于一个多项式(A(x), deg{A} = n),通过选取任意(x_i),形成点的集合:

    [{(x_0,A(x_0)),(x_1,A(x_1)),(x_2,A(x_2)),(x_3,A(x_3)), cdots (x_{n - 1},A(x_{n - 1}))} ]

    转换:

    系数转点值:随机选取(n)个互不相同的(x_0,x_1,x_2,x_3,cdots , x_{n - 1}),并进行计算(A(x_0),A(x_1),A(x_2),A(x_3), cdots ,A(x_{n - 1})),通过霍纳法则,计算(A(x_i))的时间为(O(n)),所以整个算法为(O(n^2))(后面似乎有更快的算法)

    点值转系数:咕了,睡个觉再写。

  • 相关阅读:
    由浅入深——从ArrayList浅谈并发容器
    Lambda表达式
    JVM初体验
    Redis主从复制
    Redis事务
    Redis基本命令
    Redis概述与安装
    Linux之SSH免密登录
    源码安装Nginx以及用systemctl管理
    CentOS 7 :Failed to start IPv4 firewall with iptables.
  • 原文地址:https://www.cnblogs.com/luyiming123blog/p/13763572.html
Copyright © 2011-2022 走看看