首页 > 其他分享 >快速多项式全家桶 简略总结 (不确定里面的内容对不对)

快速多项式全家桶 简略总结 (不确定里面的内容对不对)

时间:2024-08-10 21:05:16浏览次数:14  
标签:求逆 log 简略 ln 多项式 全家 pmod 求导

多项式牛顿迭代

解决的问题:求一个[多项式函数](?)\(G\),使得 \(F(G) \equiv 0 \pmod {x ^ n}\)。

(听 XK 提到 泛函分析)

\[G_{k+1} \equiv G_k - \frac { F(G_k) } { F'(G_k) } \pmod {x ^ { 2 ^ { k + 1 } }} \]

求导时把 \(G\) 当成未知数,不要对 \(G\) 求导。

倍增。

加法

每一项对应加。

时间 \(O(n)\)。

乘法

NTT。

时间 \(O(n \log n)\)。

求导

对每一项分别求导。

\[(x ^ n)' = n x ^ {n - 1} \]

\[f' _ i = (i + 1) f _ { i + 1 } \]

时间 \(O(n)\)。

积分

就是求导反过来。

\[f _ i = \frac { f' _ { i - 1 } } { i } \]

时间 \(O(n)\)。

求逆

把式子变成 \(\ldots \equiv 0\) 的形式。设左边那一堆为 \(H(G)\)。(\(G\) 是要求的多项式)

要求 \(H(G) = 0\),牛顿迭代求 \(G\) 即可。

初值(\(g_0\))等于 \(f_0\) [在模意义下](?)的乘法逆元。

时间 \(O(n \log n)\)。

[开平方根](?)

牛顿迭代(类似求逆)。

初值可能要用二次剩余。


\(\ln\) 和 \(\exp\) 互为逆运算。


ln

\[\ln G(x) = F(x) \]

给 \(F\),求 \(G\)。

推式子要用:

\[\ln ' ( x ) = \frac { 1 } { x } \]

推式子:对两边求导,再把两边都积分回去。

做:对于左边,求导、求逆 -> 相乘 -> 积分。

初值 \(\ln 1 = 0\)。(不能有其他的吗?)

时间 \(O(n \log n)\)。

exp

先对两边求 \(\ln\)。再用牛顿迭代(类似求逆)做,要用多项式 \(\ln\)。

时间 \(O(n \log n)\)。

除法、取余

\[F(x) = G(x) H(x) + R(x) \]

给 \(F, G\),求 \(H, R\)。

\(F\) 的次数是 \(n\),\(G\) 的次数是 \(m\)。那么 \(H\) 的次数就是 \((n - m)\),而 \(R\) 的次数是 \(m - 1\)。

等式两边把 \(x\) 换成 \(x ^ { - 1 }\) 后同乘 \(x ^ n\),得到系数翻转后的多项式。\(\pmod {x ^ { n - m + 1 }}\) 把 \(R\) 变成的那个多项式变成 \(0\),而且这样不会使 \(H\) 有损失,因为系数翻转后的 \(H\) 的次数 \((n - m)\) 小于 \((n - m + 1)\)。于是直接用多项式求逆和多项式乘法求出系数翻转后的 \(H\)。然后把系数翻转回来求出真正的 \(H\),再利用它求 \(G\)(多项式乘法、多项式减法)即可。

时间 \(O(n \log n)\)。

原理的关键在于我们可以用 \(\pmod {x ^ \ldots}\) 来去掉次数较高的项。但是这里 \(R\) 的次数较小,所以我们把系数翻转再用 \(\pmod {x ^ \ldots}\) 来消除 \(R\) 变成的多项式的影响。(从 https://zhuanlan.zhihu.com/p/678382384https://www.cnblogs.com/blog-Dr-J/p/10487228.html 学到这一点)

2024.8.10

标签:求逆,log,简略,ln,多项式,全家,pmod,求导
From: https://www.cnblogs.com/huangkxQwQ/p/18352739

相关文章

  • Spring全家桶(四):Spring 事务
    Spring声明式事务1. 声明式事务概念什么是事务事务作用:在数据层保障一系列的数据库操作同成功同失败Spring事务作用:在数据层或业务层保障一系列的数据库操作同成功同失败1.1编程式事务编程式事务是指手动编写程序来管理事务,即通过编写代码的方式直接控制事务的提交和回......
  • 多项式乘法
    FFT主要用于快速求多项式的乘积。多项式的乘积就叫做卷积对\(F\)和\(G\)来说,显然暴力算法的复杂度是\(O(nm)\),而FFT的时间复杂度为\(O(nlogn)\)多项式的性质:用任意\(n+1\)个横坐标不同的点,可以唯一确定一个\(n\)次多项式。这个性质叫做多项式的点表示法证明:设这个多项式\(f=a_n......
  • 【Mac】Microsoft Office LTSC 2024 for Mac(office全家桶) v16.87中文激活版
    microsoftofficeLTSC2024是一款高性能、高安全性、易用性强的office套件。它整合了最新的功能和技术,同时提供了长期的支持和更新服务。对于需要稳定运行、不能频繁接受功能更新的用户来说,officeLTSC2024是一个理想的选择。......
  • 求助!C++使用Eigen求多项式根报错访问冲突
    本地环境:VS2022安装的NuGet包:Eigen版本3.3.9配置MKL头文件相关代码#include<cmath>#include<math.h>#include<stddef.h>#include<stdlib.h>#include<string.h>voidComputeTest();源文件相关代码#defineEIGEN_USE_MKL_ALL#defineEIGEN_VECTORIZ......
  • 【笔记】多项式全家桶
    【笔记】多项式全家桶https://www.cnblogs.com/Appleblue17/p/14360752.htmlWarning空间记得开两倍,因为有卷积,最后结果是两多项式长度之和。对于多项式\(F(x)\),Templatep.s.一般函数最开始是输出数组,后接输入数组,及其长度。namespaceNTT{ constintgen=3; intr......
  • 背包计数问题的多项式优化
    此优化针对以下计数问题:n件物品,背包容量为m,第i件物品体积为\(a_i\),求装满的方案数。(01背包)n种物品,背包容量为m,第i件物品体积为\(a_i\),数量无限,求装满的方案数。(完全背包)n种物品,背包容量为m,第i件物品体积为\(a_i\),数量为\(b_i\),求装满的方案数。(多重背包)\((1\l......
  • 卷积全家桶
    卷积全家桶FFT快速傅里叶变换应用场景:有\(2^n-1\)次多项式\(f(x),g(x)\),求多项式\(f(x)g(x)\)的各项系数.换言之,有长为\(2^n\)数组\(f,g\),(下标从\(0\)开始),求长为\(2^{n+1}-1\)数组\(h\)满足\(h_i=\sum_{j=0}^{i}f_jg_{i-j}\)(超出\(f,g\)下标范围的地方用\(0\)补全).......
  • 二维计算几何全家桶
    快网络赛了但是计算几何还一点不会,所以最近狠狠恶补了一下计算几何的知识,但是由于本人实力有限,暂时还没有学会三维的计算几何,所以本文只介绍二维计算几何中一些比较常用到的知识符号函数符号函数是计算几何中经常用到的一个函数,它虽然很简单,但是在帮助我们判断几何中的位置和方......
  • 多项式学习笔记(一)(2024.7.6)
    声明:在本节范围内,所有同余号(多项式运算)均在\((\text{mod}x^n)\)意义下进行;所有等号(代数运算)均在模某个质数\(p\)意义下进行。暴力多项式计算加法\(H(x)=F(x)+G(x)\),求\(H(x)\)解:类比高精度加法\(h_i=f_i+g_i\),复杂度\(O(n)\)#include<bits/stdc++.h>usingnames......
  • 多项式基础内容小记
    0.基础知识:关于多项式的定义:多项式:一个形如\(f(x)=\sum_{i=0}^na_ix^i\)的有限和式被称为多项式。系数:多项式第\(i\)项的系数在上面就表示为\(a_i\)。度(次数):多项式中最高次数的项的次数就被称为该多项式的度,也称次数。多项式表示法:多项式有两种表示法:......