首页 > 其他分享 >多项式的逆元

多项式的逆元

时间:2023-12-26 19:45:56浏览次数:26  
标签:frac pmod 多项式 逆元 在模 equiv

对于多项式 \(f(x)=a_0+a_1x+a_2x^2+...+a_nx^n\)
若存在 \(g(x)=b_0+b_1x+b_2x^2+...+b_mx^m(m\le n)\) 使得 \(f(x)g(x)\equiv 1\pmod {x^m}\),称 \(g(x)\) 为 \(f(x)\) 在模 \(x^m\) 下的逆元,记作 \(f^{-1}(x)\pmod {x^m}\)
多项式存在逆元的充要条件:\(a_0\) 在模 \(x^m\) 下有逆元。
多项式的逆元如果存在那么就唯一。

求取方法:

  1. 暴力。\(b_i=\frac{\sum_{j=0}^{i-1}a_{i-j}b_j}{a_0}\)
  2. 倍增 给定 \(f(x)\) 求 \(g(x)\)(关于 \(x^n\) 的逆元,其中 \(n\) 为 \(2\) 的幂)
    若 \(f(x)g_n(x)\equiv 1\pmod {x^n}\) 成立,则有 \(f(x)g_{\frac{n}{2}}(x)\equiv 1\pmod {x^\frac{n}{2}}\)
    那么 \(f(x)g_n(x)\equiv 1\pmod {x^\frac{n}{2}}\)
    减一下,就有 \(f(x)(g_n(x)-g_{\frac{n}{2}}(x))\equiv 0\pmod {x^{\frac{n}{2}}}\)
    也就是 \(g_n(x)-g_{\frac{n}{2}}(x))\equiv 0\pmod {x^{\frac{n}{2}}}\)
    平方一下,\(g_n^2(x)-2g_ng_{\frac{n}{2}}+g_{\frac{n}{2}}^2(x)\equiv 0\pmod {x^n}\)
    然后拿这个东西再去乘一个 \(f(x)\) 就有 \(f(x)g_n^2(x)-2f(x)g_n(x)g_{\frac{n}{2}}(x)+f(x)g_{\frac{n}{2}}^2(x)\equiv 0\pmod {x^n}\)
    又由于 \(f(x)g(x)\equiv 1\pmod {x^n}\)
    所以 \(g_n(x)=2g_{\frac{n}{2}}(x)-f(x)g^2_{\frac{n}{2}}(x)\pmod {x^n}\)
    初始状态:\(g(x)\) 即为 \(a_0\) 在模 \(x\) 意义下的逆元。

标签:frac,pmod,多项式,逆元,在模,equiv
From: https://www.cnblogs.com/Forever1507/p/17929164.html

相关文章

  • 计算给定多项式的值
    Console.WriteLine("Hello,World!");varlist=newdouble[100000000];for(inti=0;i<100000000;i++){list[i]=i;}Console.WriteLine("Func1结果:"+Func1(100000000,1,list));Console.WriteLine("Func2结果:"+Func2(1......
  • 多项式(Poly)笔记
    开头先扔板子:多项式板子们定义多项式(polynomial)是形如\(P(x)=\sum\limits_{i=0}^{n}a_ix^i\)的代数表达式。其中\(x\)是一个不定元。\(\partial(P(x))\)称为这个多项式的次数。多项式的基本运算多项式的加减法\[A(x)=\sum_{i=0}^{n}a_ix^i,B(x)=......
  • 多项式板子
    FFT#include<iostream>#include<cstdio>#include<cmath>usingnamespacestd;intlimit,r[10000010];doublepie=acos(-1.0);structcomplex{ doublex,y; complex(doublea=0,doubleb=0){x=a;y=b;}};complexoperator+(complexa,complexb......
  • #P1052. 乘法逆元
    #include<bits/stdc++.h>#defineintlonglongusingnamespacestd;intn,p;intgcd(inta,intb,int&x,int&y){ if(b==0){ x=1; y=0; returna; } intd=gcd(b,a%b,y,x); y-=a/b*x; returnd;}intinv(inta,intm){ intx,y; gcd(a,m,x......
  • 任意类型多项式乘法
    目录前言前置知识定义与记号单位根分圆多项式Cantor'sAlgorithm规避单位根递归计算卷积做\(\mathcal{I}_p\)上的DFT时间复杂度规避除法实现细节参考资料参考文献参考代码前言所谓“任意类型”,事实上指的是一种代数结构\(\mathcal{A}=(D,+,\cdot)\),满足:\(+:D\timesD\toD......
  • 机器学习-线性回归-多项式升维-07
    目录1.为什么要升维2代码实现3,总结1.为什么要升维升维的目的是为了去解决欠拟合的问题的,也就是为了提高模型的准确率为目的的,因为当维度不够时,说白了就是对于预测结果考虑的因素少的话,肯定不能准确的计算出模型。在做升维的时候,最常见的手段就是将已知维度进行相乘来构建......
  • AtCoder Beginner Contest 331 G - Collect Them All【概率期望+容斥+多项式】
    题目链接:ABC331_G写在前面将来如果回顾这道题,建议自己看完题意一定先重新推一遍。如果还是不够熟练,多去做一些同类型的题目吧。题意:盒子里有\(N\)张卡片,每张卡片上写着一个数字,数字的范围是\(1,...,M\),写着数字\(i\)的卡片有\(C_i\)张\((C_i>0)\)。有放回地抽取卡片,每......
  • 转置原理与多项式多点求值
    终于学转置原理了,之前一直听zhy糊多项式题不知道他在讲写啥。自己的多项式水平长期停留在多项式除法,直到今天做互测时被迫学了怎么去多点求值。正式比赛大概率不考(吧?)所以学来娱乐一下。普通多点求值算法思想很妙,效率很逊。代码不写了因为我连多项式取模都忘了怎么写了。考虑......
  • 欧氏空间上正规算子极小多项式的不可约分解诱导出全空间的正交直和分解
    ......
  • 【未完善】多项式全家桶
    #include<iostream>#include<cmath>#include<cctype>#include<functional>#include<algorithm>#include<vector>#defineUP(i,s,e)for(autoi=s;i<e;++i)#defineDOWN(i,e,s)for(autoi=e;i-->s;)usingstd::c......