笔记-多项式相关操作
多项式求导
函数\(f(x)\)的导函数\(f^{'}(x)\)有如下性质:
\((f(x)\pm g(x))^{'}=f^{'}(x)\pm g^{'}(x)\)
\((f(x)g(x))^{'}=f^{'}(x)g(x)+f(x)g^{'}(x)\)
而且对于单项式\(f(x)=x^n\),其导数\(f^{'}(x)=nx^{n-1}\),所以其\(k(k\leq n)\)阶导数\(f^{(k)}(x)=\frac{n!}{(n-k)!}x^{n-k}\)
相应的,对于多项式\(f(x)=\sum_{i=0}^na_ix^i\),其导数\(f(x)=\sum_{i=0}^{n-1}a_{i+1}(i+1)x^i\),其\(k(k\leq n)\)阶导数\(f^{(k)}=\sum_{i=0}^{n-k}a_{i+k}\frac {(i+k)!}{i!}x^i\)
\(T(n)=O(n)\)
多项式积分
积分是求导的逆运算
若\(f(x)=\sum_{i=0}^{n-1}a_ix_i\)
即\(\int f^{'}(x)\cdot dx=\sum_{i=1}^{n}\frac {a_{i-1}}{i}x^i\)
\(T(n)=O(n)\)
注意同一多项式求导需要逆序
多项式翻转
NOIP考点,但有个式子可以留意:\(f^{R}(x)=x^nf(\frac 1x)\)
多项式求逆
单个元素的逆元应该是是会求的,比如说一个数\(t\)的逆元在膜质数意义下为\(t^{p-2}\)
但现在要求求一个多项式的逆元,联想到在模数为\(x\)时可以快速求得其逆元为\(a(0)^{-1}\),可以考虑从这里开始递推
对于题目可设
\(a*b\equiv 1\pmod {x^{2p}}\\a*c\equiv 1\pmod {x^p}\)
即已知\(a,c\)求\(b\)
\(a*b\equiv 1\pmod {x^p}\\a*c\equiv 1\pmod {x^p}\)
\(\Rightarrow b-c\equiv 0\pmod {x^p}\)
\(\Rightarrow b^2-2bc+c^2\equiv 0 \pmod {x^{2p}}\)
同乘\(a\)
\(\Leftrightarrow ab^2-2abc+ac^2\equiv 0 \pmod {x^{2p}}\)
考虑到\(ab\equiv 1\pmod {x^{2p}}\)
\(\Leftrightarrow b-2c+ac^2\equiv 0 \pmod {x^{2p}}\)
\(\Leftrightarrow b\equiv 2c-ac^2 \pmod {x^{2p}}\)
\(T(n)=O(n\log_2 n)\)
牛顿迭代法
①
可以用来比较高效地求解多项式函数\(f(x)=\sum_{i=0}^na_ix^i\)零点的近似解,大致过程是,选取\(x_0\)作为零点的近似值(当然这个近似值很可能差距很大,但经过若干次牛顿迭代后将会接近零点),然后求过点\((x_o,f(x_0))\)关于\(f(x)\)的切线\(l\),然后得到直线\(l\)的零点\(x_1\)作为新的近似值,如此反复,得到的\(x_i\)会收敛
②
求解使得\(F(f(x))=0\pmod {x^n}\)的多项式\(f(x)\)
可以用类似多项式求逆的方法,从\(\bmod x^1\)的情况下开始推导至\(\bmod x^n\)的情况,\(\bmod x^1\)的情况可以直接求得,设当前\(F(f_0(x))\equiv 0\pmod {x^{\lceil \frac k2\rceil}}\),现在要求解\(F(f(x))\equiv 0\pmod {x^k}\),在\(f_0(x)\)处展开\(F(f(x))\):
\[F(f(x))=F(f_0(x))+\sum_{i=1}^{+\infty} F^{(i)}(f_0(x))(f(x)-f_0(x))^i\]
由于\(f(x)\)与\(f_0(x)\)中前\(\lceil \frac k2 \rceil\)项是相同的,所以多项式\((f(x)-f_0(x))^t\)当\(t\geq 2\)时在\(\bmod x^k\)情况下为\(0\),所以
\[F(f(x))=F(f_0(x))+F^{'}(f_0(x))(f(x)-f_0(x))\]
由于\(F(f(x))\equiv 0\pmod {x^k}\),所以可推得
\[f(x)=f_0(x)-\frac{F(f_0(x))}{F^{'}(f_0(x))}\]
这个式子貌似很有用
多项式开根
已知\(g(x)\),求解\(f(x)^2\equiv g(x)\pmod {x^n}\)
\(f(x)^2-g(x)\equiv 0\pmod {x^n}\)
则有\(F(f(x))\equiv f_0(x)^2-g(x)\pmod {x^n}\\F^{'}(f(x))\equiv 2f_0(x)\pmod {x^n}\)
由上述牛顿迭代得到的式子可知
\(f(x)\equiv f_0(x)-\frac{F(f_0(x))}{F^{'}(f_0(x))}\pmod {x^n}\)
\(f(x)\equiv f_0(x)-\frac {f_0(x)^2-g(x)}{2f_0(x)}\pmod {x^n}\)
\(f(x)\equiv \frac {f_0(x)^2+g(x)}{2f_0(x)}\pmod {x^n}\)
\(T(n)=O(n\log_2n)\)
另外常数项如果非1则需要求二次剩余,然而我并不会
多项式求ln
已知\(f(x)\),求解\(\ln(f(x))\)
\((\ln f(x))^{'}=\frac {d \ln f(x)}{d~f(x)}\cdot \frac{d~f(x)}{dx}=(\ln f(x))^{'}\cdot f^{'}(x)=\frac{f^{'}(x)}{f(x)}\)
所以
\(\ln f(x)=\large \int \small(\ln f(x))^{'}=\large \int \small \frac {f^{'}(x)}{f(x)}\)
\(T(n)=O(n\log_2n)\)
多项式求exp
已知\(g(x)\),求解\(f(x)=e^{g(x)}\)
令\(F(f(x))=\ln f(x)-g(x)\equiv 0\pmod {x^n}\)
则有\(F^{'}(f(x))\equiv \frac 1{f(x)}\)
由上述牛顿迭代得到的式子可知
\(f(x)\equiv f_0(x)-\frac{F(f_0(x))}{F^{'}(f_0(x))}\pmod {x^n}\)
\(f(x)\equiv f_0(x)-\frac {\ln f_0(x)-g(x)}{\frac 1{f_0(x)}}\pmod {x^n}\)
\(f(x)\equiv f_0(x)(1-\ln f_0(x)+g(x))\pmod {x^n}\)
\(T(n)=O(n\log_2n)\)
多项式求k次方
暴力\(O(n\log_2n\log_2k)\)
但数学就是那么神奇,转个弯可以加速
\(f(x)^k=(e^{\ln f(x)})^k=e^{k\cdot \ln f(x)}\)
\(T(n)=O(n\log_2n)\)
多项式除法&取模
已知\(n\)次多项式\(A(x)\)和\(m\)次多项式\(B(x)\),求解\(n-m\)次多项式\(f(x)\)与\(k(k<m)\)次多项式\(g(x)\),使得\(A(x)=f(x)B(x)+g(x)\)
消除\(g(x)\)的影响,将\(f(x)\)翻转
\(x^nA(\frac 1x)=x^nf(\frac 1x)B(\frac 1x)+x^ng(\frac 1x)\)
\(\Leftrightarrow x^nA(\frac 1x)=x^{n-m}f(\frac 1x)x^mB(\frac 1x)+x^{n-m+1}x^{m-1}g(\frac 1x)\)
\(\Leftrightarrow A^R(x)=f^R(x)B^R(x)+x^{n-m+1}g^R(x)\)
这个式子在模\(x^{n-m+1}\)的情况下,关于\(g^R(x)\)的项恒为零,同时\(deg~f^R(x)<n-m+1\)不受影响,就可以得到\(f^R(x)\)的真实值\(f^R(x)=\frac {A^R(x)}{B^R(x)}\bmod {x^{n-m+1}}\),对\(f^R(x)\)翻转可得\(f(x)\),同时计算出\(g(x)=A(x)-f(x)B(x)\)
转载于:https://www.cnblogs.com/penth/p/9470258.html
笔记-多项式相关操作相关推荐
- 多项式相关操作学习笔记
多项式相关操作学习笔记 标签: 多项式 说在前边 记录一下相关的多项式操作,顺便存个模板.(多点求值之后的部分,有点写不动了...留坑留坑 多项式 定义 给定一个环\(R\)(\(R\)通常是交换环, ...
- jQuery学习笔记--JqGrid相关操作 方法列表 备忘 重点讲解(超重要)
JqGrid相关操作备忘 方法列表 特别推荐:怎样获取某一方某一列的值: [html] view plaincopy var rowdata=jQuery("#list").jqG ...
- jQuery学习笔记--JqGrid相关操作 方法列表 备忘 重点讲解(超重要) from:jpr1990
JqGrid相关操作备忘 方法列表 1.获得当前列表行数:$("#gridid").getGridParam("reccount"); 2.获取选中行数据(js ...
- jQuery学习笔记--JqGrid相关操作 方法列表(上)
1.获得当前列表行数:$("#gridid").getGridParam("reccount"); 2.获取选中行数据(json):$("#gridi ...
- 数据结构源码笔记(C语言):二叉平衡树的相关操作算法
//二叉平衡树的相关运算 #include<stdio.h> #include<malloc.h> #include<string.h>typedef char I ...
- 【学习笔记】多项式相关算法
[学习笔记]多项式相关算法 手动博客搬家: 本文发表于20181125 13:19:28, 原地址https://blog.csdn.net/suncongbo/article/details/844 ...
- Python笔记_07_列表的相关操作_列表相关函数_深浅拷贝_字典相关函数_集合相关函数_冰冻集合
笔记目录 列表的相关操作 列表的拼接(同元组) 列表的重复 (同元组) 列表的切片 (同元组) 列表的获取 (同元组) 列表的修改 (可切片) 列表的删除 ( 可切片 ) 列表的相关函数 append ...
- Spring中RedisTemplate方法中,redis相关操作笔记。[redis生成指定长度自增批次号,删除、设置过期时间等]
Spring中RedisTemplate方法中,redis相关操作笔记. redis获取自增批次号 // opsForValue()生成long UUID = redisTemplate.opsFor ...
- [笔记] 阿里云服务器的相关操作
文章目录 前言 ECS 服务器数据转移 磁盘扩容 磁盘扩容 Ubuntu 无法启动 更换系统盘 快照及镜像 卸载.挂载数据盘 标题:[笔记] 阿里云服务器的相关操作 前言 最近一直在用阿里云服务器,感 ...
最新文章
- java arraycollection_Java集合(三)--Collection、Collections和Arrays
- optee系统服务/service的实现方式
- windows mysql 自动备份的几种方法
- hdu 3577(线段树区间更新)
- 机器学习的理论知识点总结
- 就业阶段-java语言进价_day04
- 【NAACL2021】初探无监督的多跳问答对
- 手机摄像头的组成结构和工作原理
- 导出DMP文件实现数据库备份、数据迁移流程
- java实现斜水印铺满整张图
- cmd 新增dns_cmd修改DNS,以及DNS大全
- [1191]电脑耳机孔插上耳机没反应
- Kubernetes | 《Kubernetes in Action中文版》第8章错误
- JRE、JDK、JVM、Jit
- 讲道理 | 计算正交投影算子
- 从零开始用 Python 打造自己的区块链
- 记一次阿里云ECS被挂挖矿代码的处理历程
- 必出沾福气卡的福字大全-马云分享
- Androdi平台camera的相关知识总结
- “数字孪生城市”的概念,你知道多少?
热门文章
- Bzoj 1901: Zju2112 Dynamic Rankings 主席树,可持久,树状数组,离散化
- 数据库中的DbUtils
- linux tar压缩解压命令的详细解释
- 触控游戏的设计—Windows Phone 7游戏开发
- vs 生成get set_TVM代码学习 -- 代码生成流程(一)
- php框架大全图解_PHP框架汇总 - 鱼煎的个人空间 - OSCHINA - 中文开源技术交流社区...
- python迭代器好处_python迭代器
- JavaScript ES6新特性(二):模块化
- asm冗余 oracle_oracle 11.2.0.1 rac 修改asm磁盘组的冗余模式(redundancy mode)为normal
- 用matlab做元胞自动机预测,元胞自动机(Cellular Automata)与城市规划及其MATLAB实现——莆田市城市发展预测...