首页 > 其他分享 >多项式学习笔记

多项式学习笔记

时间:2024-02-03 20:58:15浏览次数:30  
标签:frac ln 多项式 bmod 笔记 学习 给定 equiv

多项式学习笔记

泰勒展开

有 \(F(x)=F(x_{0})+\frac{F'(x_{0})}{1!}(x-x_{0})+\frac{F'(x_{0})}{2!}(x-x_{0})^{2}\cdots +\frac{F^{(n)}(x_{0})}{n!}(x-x_{0})^{n}\)

给定 \(G(x)\) 求解 \(G(F(x))\equiv 0\bmod x^{n}\) 的 \(F(x)\)。

考虑分治:

设 \(f_{0}(x)\) 是 $G(F(x))\equiv 0\bmod x^{\lceil \frac{n}{2}\rceil} $。

注意到 \(F(x)\) 与 \(f_{0}(x)\) 的前 \(\lceil \frac{n}{2}\rceil\) 位是相同的,于是可以对 \(G(F(x))\) 在 \(f_{0}(x)\) 处展开,那么就有:

\[\sum_{i=0}^{\inf} \frac{g^{(i)}(f_{0}(x))}{i!}(f(x)-f_{0}(x))^{i}\equiv 0 \bmod x^{n} \]

然后因为当 \(i\ge 2\) 时,\((f(x)-f_{0}(x))^{i} \bmod x^{n}\equiv 0\)。所以只需要考虑 \(i=0,1\) 的情况,然后可以得到 \(f(x)\equiv f(x_{0})-\frac{g(f(x))}{g'(f(x))}\)。这个式子下面将会起到关键的作用。

多项式的基本运算

乘法逆:

给定 \(g(x)\),求 \(f(x)g(x)\equiv 0\bmod x^{n}\)。

根据泰勒展开,设 \(h(f(x))=\frac{1}{f(x)}-g(x)\equiv 0\),则有:

\[f(x)=f_{0}(x)-\frac{h(f(x))}{h'(f(x))}=f_{0}(x)-\frac{\frac{1}{f(x)}-g(x)}{\frac{1}{-f^{2}_{0}(x)}} \]

则有 \(f(x)=2f_{0}(x)-f_{0}^{2}(x)g(x)\)。暴力 NTT 时间复杂度 \(O(n\log n)\)。

开根:

给定 \(g(x)\),求 \(f(x)\) 使得 \(f^2(x)\equiv g(x) \bmod x^{n}\)。

同样泰勒展开,设 \(h(f(x))=f^2(x)-g(x)\equiv 0\),则有

\[f(x)=f_{0}(x)-\frac{h(f(x))}{h'(f(x))}=f_{0}(x)-\frac{f^2(x)-g(x)}{2f(x)} \]

从而转化成了多项式求逆问题,时间复杂度还是 \(O(n\log n)\) 的,但是常数巨大。

代余除法:

给定 \(n\) 次多项式 \(F(x)\),\(m\) 次多项式 \(G(x)\),求 \(Q(x),R(x)\) 使得 \(F(x)=Q(x)\times G(x)+R(x)\)。

给出一个推论:\(F^{R}(x)=x^{deg(F(x))}F(\frac{1}{x})\),\(F^{R}(x)\) 表示系数翻转的多项式,这个模拟一下就可以证明。

那么对于这个问题,令 \(x'=\frac{1}{x}\),那么有 \(F^{R}(x')=Q^{R}(x')\times G^{R}(x')+x^{n-deg(R(x))}R^{R}(x)\),因为 \(deg(R(x))\) 显然是 \(<m\) 的,而 \(G^{R}(x')\) 的次数一定 \(\le n-m+1\),所以显然可以放在模 \(x^{n-m+1}\) 的意义下来做,此时后面的 \(R(x)\) 项就没有贡献,直接多项式求逆即可。

多项式求 \(\ln\):

给定 \(F(x)\), 求 \(G(x)\equiv \ln F(x)\)。

\(\ln\) 的求导形式非常好,考虑求导得: \(G'(x)\equiv \frac{F'(x)}{F(x)}\)。注意到对于复合函数求导需要对内外的函数均求导,所以是 \(\frac{F'(x)}{F(x)}\)。然后就是多项式求逆。

多项式求 exp:

给定 \(G(x)\),求 \(G(x)\equiv e^{G(x)}\)。

考虑取 $\ln $,即 \(\ln F(x)\equiv G(x)\),然后泰勒展开即可得到 \(F(x)=f_{0}(x)(1-\ln f_{0}(x)+G(x))\)。

递归求解,过程和求逆类似。

快速幂:

给定 \(A(x),k\),求 \(B(x)\equiv A(x)^{k}\bmod x_{n}\)。

等式两边均取 ln,得 \(\ln B(x)\equiv k\ln A(x)\),转为求 exp。

标签:frac,ln,多项式,bmod,笔记,学习,给定,equiv
From: https://www.cnblogs.com/OIshima/p/18005174

相关文章

  • 作为国产深度学习框架中分布式计算特性最强大的OneFlow的最大缺点是什么?
    OneFlow是国产深度学习框架中分布式计算特性最强大的,因为其原生支持分布式特性,世界上的历史中的深度学习框架唯一可以做到这一点的也就只有Google的TensorFlow和Jax了,虽然有人说Google的分布式最强也有人说Google的分布式一般,但是毋庸置疑的是OneFlow一定是国产深度学习框架中分布......
  • gaussian-splatting学习2——初步使用
    下载源码:gitclone--recurse-submoduleshttps://github.com/graphdeco-inria/gaussian-splatting.git利用conda创建虚拟环境:condacreate-ngspython=3.8切换虚拟环境:condaactivategs在gs环境下安装:pipinstalltorch==2.0.0+cu118torchvision==0.15.0+cu118torchaudio......
  • 后缀自动机学习笔记
    点击查看代码#include<bits/stdc++.h>usingnamespacestd;structt1{ intl,ta; longlonglen,cnt; map<char,int>q;}t[2000005];vector<int>a[2000005];inttot,la;longlongans;voidcalc(intx){ if(t[x].cnt>1) { ans=max(ans,t[x].l......
  • (python)代码学习||2024.2.3||题目是codewars上的【Validate Sudoku with size `NxN`
    题目的要求是写一个Sudoku类,类中要有一个实例函数判断传给对象的二维数组是否符合数独规则题目链接:https://www.codewars.com/kata/540afbe2dc9f615d5e000425/python下面是写完题后看到的别人的解决方法fromitertoolsimportchainclassSudoku(object):def__init__......
  • 【阅读笔记】《A New Hardware-Efficient Algorithm and Reconfigurable Architecture
    一、对比度增强算法AGCWD硬件化实现2013年发表在TIP上的对比度增强算法AGCWD(Efficientcontrastenhancementusingadaptivegammacorrectionwithweightingdistribution)2014年发表在IEEETransactionsonImageProcessing的《ANewHardware-EfficientAlgorithmandReco......
  • 新手如何快速学习爬虫逆向?-->>爬虫之js逆向百例
    《个人练习》各位爬虫逆友如有需要请及时留言或者加vx:wzwzwz0613该案例只对学习js逆向的爬虫逆友提供技术交流,请勿进行商业交易,谢谢!技术交流群v+:......
  • RabbitMQ 学习笔记 - 1
    RabbitMQ的基础概念生产者产生数据发送消息的程序是生产者交换机交换机是RabbitMQ非常重要的一个部件,一方面它接收来自生产者的消息,另一方面它将消息推送到队列中。交换机必须确切的知道如何处理它接收到的消息,是将这些消息推送到特定队列还是推送到多个队列,亦或者是把消息丢......
  • C语言-malloc学习
    学习网址C语言动态内存函数(malloc、calloc、realloc、free)详解:https://www.jb51.net/program/295325hjh.htmC语言动态内存函数详解:https://www.jb51.net/article/223725.htm在C语言中,动态内存函数是块重要的知识点,以往,我们开辟空间都是固定的。数组编译结束后就不能继续给它开......
  • 【阅读笔记】对比度增强-《Efficientcontrast enhancement using adaptive gamma corr
    2013年发表在TIP上的对比度增强算法AGCWD(Efficientcontrastenhancementusingadaptivegammacorrectionwithweightingdistribution)提出了一种自动映射技术,通过亮度像素的伽马校正和概率分布来提高调暗图像的亮度。为了增强视频,所提出的图像增强方法使用关于每帧之间差异的......
  • C语言学习9
    前面写float的数据类型后,输入0.0,编译器默认是double类型的变量,后加f才是floatgoto语句上述例子死循环,goto=飞雷神苦无.....但使用多了,程序出现的BUG也会增多,其次也不能跨函数跳转,如下:真正适用场景例子:预备:shutdown-s:关机,shutdown-t:定时关机,(注意空格);shutdown-a:取消关机左上角注:......