多项式全家桶
下面的所有知识均属多项式范畴。
前言
本文略去多项式的定义,毕竟初中数学都讲过。
本文会出现一些可能没有见过的表达:
- 对于一个关于 xxx 的多项式 f(x)f(x)f(x),称其最高次项次数为 f(x)f(x)f(x) 的度数,记做 degf\operatorname{deg}~fdeg f。
- 多项式同样定义了四则运算,同时也衍生出了同余符号 ≡\equiv≡、对数函数 ln(f(x))\ln(f(x))ln(f(x)),指数函数 exp(f(x))\exp(f(x))exp(f(x)) 等等。
- 下文一般采用 f(x)modxnf(x)~\bmod x^nf(x) modxn 来表示多项式 f(x)f(x)f(x) 的所有次数小于 nnn 的项之和。
注意:本文的知识环环相扣,请勿乱序阅读。
拉格朗日插值
插值,通俗地讲,就是指通过多项式在某些点的值求出整个多项式的表达式。
而拉格朗日插值就是计算插值的一种方法,它支持通过 n+1n + 1n+1 个点插出一个度数为 nnn 的多项式。
按惯例,献上模板题。
首先对于多项式 f(x)f(x)f(x),必然满足 f(x)≡f(a)(mod(x−a))f(x) \equiv f(a)~(\bmod (x - a))f(x)≡f(a) (mod(x−a))。
证明:
转化为 f(x)−f(a)≡0(mod(x−a))f(x) - f(a) \equiv 0~(\bmod~(x - a))f(x)−f(a)≡0 (mod (x−a))。
设左侧的多项式为 g(x)g(x)g(x),显然其常数项为 000。
又因为其第 iii 项为 pi(xi−ai)p_i(x^i - a^i)pi(xi−ai)(pip_ipi 为系数),并且 xi−aix^i - a^ixi−ai 必定可以分解为 (x−a)⋅q(x)(x - a) \cdot q(x)(x−a)⋅q(x) 的形式(q(x)q(x)q(x) 为另一个多项式),所以得证。
所以我们可以得到一个关于 f(x)f(x)f(x) 线性同余方程组:
{f(x)≡y1(mod(x−x1))f(x)≡y2(mod(x−x2))f(x)≡y3(mod(x−x3))⋮f(x)≡yn(mod(x−xn))\left\{ \begin{matrix} f(x) \equiv y_1~(\bmod (x - x_1)) \\ f(x) \equiv y_2~(\bmod (x - x_2)) \\ f(x) \equiv y_3~(\bmod (x - x_3)) \\ \vdots \\ f(x) \equiv y_n~(\bmod (x - x_n)) \end{matrix} \right. ⎩⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎧f(x)≡y1 (mod(x−x1))f(x)≡y2 (mod(x−x2))f(x)≡y3 (mod(x−x3))⋮f(x)≡yn (mod(x−xn))
这里可以使用中国剩余定理解方程组(这里就没有必要关注它们是否互质了)。
我们可以设 M=∏i=1n(x−xi)M = \prod_{i = 1}^n (x - x_i)M=∏i=1n(x−xi),Mi=M(x−xi)=∏j≠i(x−xj)M_i = \frac{M}{(x - x_i)} = \prod_{j \ne i} (x - x_j)Mi=(x−xi)M=∏j=i(x−xj)。
则 MiM_iMi 在模 x−xix - x_ix−xi 意义下的逆元为 ∏j≠i1xi−xj\prod_{j \ne i}\frac{1}{x_i - x_j}∏j=ixi−xj1。
(因为 MiMi−1=∏j≠ix−xjxi−xj≡1(mod(x−xi))M_i M_i^{-1} = \prod_{j \ne i}\frac{x - x_j}{x_i - x_j} \equiv 1~(\bmod (x - x_i))MiMi−1=∏j=ixi−xjx−xj≡1 (mod(x−xi)),则对于每一个 j≠ij \ne ij=i 都存在 $ x - x_j \equiv x_i - x_j~(\bmod (x - x_i))$,移项可得 x−xi≡0(mod(x−xi))x - x_i \equiv 0~(\bmod (x - x_i))x−xi≡0 (mod(x−xi)),这显然是成立的。)
所以有 f(x)=∑i=1nyi∏j≠ix−xjxi−xj(modM)f(x) = \sum_{i = 1}^n y_i\prod_{j \ne i} \frac{x - x_j}{x_i - x_j}~(\bmod~M)f(x)=∑i=1nyi∏j=ixi−xjx−xj (mod M),它在模意义下是唯一的。
(实际上有另外的证明方式证明了其在通常意义下也是唯一的,这里略去。)
本题中,我们只需要代入 kkk 求解即可,时间复杂度为 O(n2)O(n^2)O(n2)。不过更多时候,我们需要求出其所有系数,也可以做到 O(n2)O(n^2)O(n2),甚至还存在更低的复杂度,这里就不展开介绍了。
代码就不贴了。
多项式乘法
多项式乘法的定义,这里就不必多言了,初中数学都讲过。
代数形式:
设有多项式 f(x)=a0+a1x+a2x2+⋯+anxnf(x) = a_0 + a_1 x+ a_2x^2 + \cdots+ a_nx_nf(x)=a0+a1x+a2x2+⋯+anxn,g(x)=b0+b1x+b2x2+⋯+bmxmg(x) = b_0 + b_1 x+ b_2x^2 + \cdots+ b_mx_mg(x)=b0+b1x+b2x2+⋯+bmxm。
则它们的乘法积为 t(x)=c0+c1x+c2x2+⋯+cn+mxn+mt(x) = c_0 + c_1 x + c_2 x^2 + \cdots +c_{n + m}x^{n + m}t(x)=c0+c1x+c2x2+⋯+cn+mxn+m。
其中,对于 t(x)t(x)t(x) 的系数 ckc_kck 有公式:ck=∑i=0kaibk−ic_k = \sum_{i = 0}^k a_i b_{k - i}ck=∑i=0kaibk−i。
可以发现这个公式的形式十分类似卷积。但请注意:它们不是同一个东西,不要弄混淆了。
事实上,多项式乘法就是用于求卷积的。如果您对卷积感兴趣,建议百度。
现在,给出两个多项式 f(x)f(x)f(x) 和 g(x)g(x)g(x) 的系数,求出它们的乘法积 t(x)t(x)t(x)。f(x)f(x)f(x) 和 g(x)g(x)g(x) 的次数小于 10510^5105。
根据上面的公式,我们可以得到一个 O(n2)O(n^2)O(n2) 的优秀算法。
我们考虑换一种思想计算这个乘法积。
众所周知,有这样一条著名的定理:任意 kkk 个点可以唯一确定一个至多为 k−1k - 1k−1 次的多项式。
所以我们得到了一个新的思路:先求出足够多的 f(x)f(x)f(x) 和 g(x)g(x)g(x) 的点值,将它们用 O(n)O(n)O(n) 的复杂度乘起来(横坐标不变,纵坐标相乘),再将这些点转化为一个多项式(上面提到了这样的过程叫做插值)。
这种方法叫做离散傅里叶变换(即著名的 DFT\operatorname{DFT}DFT)。
问题是,如果钦定一些 xxx 去求对应的 f(x)f(x)f(x) 的值,时间复杂度还是 O(n2)O(n^2)O(n2) 的。
所以,下面介绍快速傅里叶变换,同时会介绍快速数论变换(即著名的 FFT\operatorname{FFT}FFT 和 NTT\operatorname{NTT}NTT)。
前置知识:单位根,原根。
还记得二次函数 y=x2y = x^2y=x2 的性质吗?
它关于 yyy 轴对称,所以我们如果代入 x=kx = kx=k,同样可以得到 x=−kx = -kx=−k 时 yyy 的值。
这启发我们,可以选取一些特殊的 xxx,使得我们可以在求出一些点值的同时,快速地求出另外的一些点值。
这个时候,单位根就派上用场了。
先讲一些使得单位根能够应用于此的性质:
- 记 ωn\omega_nωn 为 nnn 次单位根,即满足 ωnk=e2kπin\omega_n^k = e^{\frac{2k\pi i}{n}}ωnk=en2kπi,而 e2kπin=cos2kπn+isin2kπne^{\frac{2k\pi i}{n}}=\cos \frac{2k\pi}{n} + i \sin \frac{2k\pi}{n}en2kπi=cosn2kπ+isinn2kπ,iii 为虚数单位。
(注意 nnn 次单位根的 nnn 一般取 222 的正整数次幂,而下文皆如此。)
这个计算公式不仅可以让我们计算出单位根的具体数值,并且可以得出以下性质:
- ωnn=cos2π+isin2π=1=ωn0\omega_n^n = \cos 2\pi + i \sin 2\pi = 1 = \omega_n^0ωnn=cos2π+isin2π=1=ωn0。
这条性质说明 nnn 次单位根存在长度为 nnn 的指数循环节;
- ωnn2=cosπ+isinπ=−1\omega_n^{\frac{n}{2}} = \cos \pi + i \sin \pi= -1ωn2n=cosπ+isinπ=−1。
这条性质间接地证明了 nnn 次单位根的最小指数循环节长度为 nnn,同时为下文折半引理的证明做了铺垫。
- 单位根消去引理:ω2n2k=ωnk\omega_{2n}^{2k} = \omega_n^kω2n2k=ωnk。
根据公式有 ω2n2k=e4kπi2n=e2kπin=ωnk\omega_{2n}^{2k}= e^{\frac{4k\pi i}{2n}} = e^{\frac{2k\pi i}{n}} = \omega_{n}^kω2n2k=e2n4kπi=en2kπi=ωnk,得证。
这条性质可以做为沟通不同次单位根的桥梁,同时也证明了 nnn 次单位根的值域是 2n2n2n 次单位根值域的真子集。
- 单位根折半引理:ωnk+n2=−ωnk\omega_n^{k+\frac{n}{2}} = -\omega_{n}^kωnk+2n=−ωnk。
根据上面的性质有 ωnk+n2=ωnk⋅ωnn2=−ωnk\omega_n^{k + \frac{n}{2}} = \omega_n^k \cdot \omega_n^{\frac{n}{2}} = -\omega_n^kωnk+2n=ωnk⋅ωn2n=−ωnk,得证。
这条性质可以做为沟通同次不同指数的单位根的桥梁,为 DFT\operatorname{DFT}DFT 的分治优化创造了可能。
而我们该如何运用单位根的这些性质呢?
我们将 f(x)=a0+a1x+a2x2+a3x3f(x) = a_0 + a_1 x + a_2 x^2 + a_3x^3f(x)=a0+a1x+a2x2+a3x3 做一个小小的改动:
f(x)=a0+a1x+a2x2+a3x3=a0+a2x2+a1x+a3x3=(a0+a2x2)+x(a1+a3x2)=f1(x2)+xf2(x2)\begin{aligned} f(x) &= a_0 + a_1 x + a_2 x^2 + a_3x^3 \\ &=a_0 + a_2 x^2 + a_1 x + a_3x^3 \\ &= (a_0 + a_2 x^2) + x(a_1 + a_3 x^2) \\ &= f_1(x^2) + xf_2(x^2) \end{aligned} f(x)=a0+a1x+a2x2+a3x3=a0+a2x2+a1x+a3x3=(a0+a2x2)+x(a1+a3x2)=f1(x2)+xf2(x2)
可以发现,这样的变换,会使得原多项式被拆分为两个规模缩小了一半多项式。
所以,我们又有了一个新的算法模型:
我们考虑将 f(x)f(x)f(x) 拆分为两个规模缩小了一半的多项式 f1(x),f2(x)f_1(x), f_2(x)f1(x),f2(x),然后对它们进行分治,接着,我们可以用 f1(x),f2(x)f_1(x),f_2(x)f1(x),f2(x) 在 x=k2x = k^2x=k2 处的点值计算出 f(x)f(x)f(x) 在 x=kx = kx=k 处的点值。如果分治时每一层的复杂度都能够做到 O(n)O(n)O(n),那么总的时间复杂度就是 O(nlog2n)O(n \log_2 n)O(nlog2n)。
接下来,我们考虑利用单位根的性质,将每一层转化点值的操作复杂度变为 O(n)O(n)O(n)。
如果我们将单位根 ωnk\omega_{n}^kωnk 和 ωnk+n2\omega_n^{k + \frac{n}{2}}ωnk+2n 分别代入多项式 f(x)f(x)f(x):
f(ωnk)=f1(ωn2k)+ωnkf2(ωn2k)=f1(ωn2k)+ωnkf2(ωn2k)f(ωnk+n2)=f1(ωn2k+n)+ωnk+n2f2(ωn2k+n)=f1(ωn2k)−ωnkf2(ωn2k)f(\omega_{n}^{k}) = f_1(\omega_n^{2k}) + \omega_n^kf_2(\omega_n^{2k}) = f_1(\omega_{\frac{n}{2}}^{k}) + \omega_n^kf_2(\omega_{\frac{n}{2}}^{k}) \\ f(\omega_{n}^{k + \frac{n}{2}}) = f_1(\omega_n^{2k + n}) + \omega_n^{k + \frac{n}{2}}f_2(\omega_n^{2k + n}) = f_1(\omega_{\frac{n}{2}}^{k}) - \omega_n^kf_2(\omega_{\frac{n}{2}}^{k}) f(ωnk)=f1(ωn2k)+ωnkf2(ωn2k)=f1(ω2nk)+ωnkf2(ω2nk)f(ωnk+2n)=f1(ωn2k+n)+ωnk+2nf2(ωn2k+n)=f1(ω2nk)−ωnkf2(ω2nk)
可以发现,只要我们求出了 f1(x),f2(x)f_1(x),f_2(x)f1(x),f2(x) 在 x=ωn2kx = \omega_{\frac{n}{2}}^kx=ω2nk 处的点值,我们就可以直接得出 f(x)f(x)f(x) 在 x=ωnk,x=ωnk+n2x = \omega_n^k,x = \omega_n^{k + \frac{n}{2}}x=ωnk,x=ωnk+2n 两处的点值!
具体来说,我们只要在所有长度为 nnn 的多项式中求出在所有 nnn 次单位根处的点值即可。
这样,做到 O(n)O(n)O(n) 的复杂度已经易如反掌了。
我们再来理一遍这个算法吧:(同时加入了一些很多细节)
- 我们找到一个 ppp,使得 ppp 是 222 的正整数次幂且 p≥n+m+1p \ge n + m + 1p≥n+m+1。
这一步操作之前没有提到,但是很有必要,它为分治算法的进行提供了方便,这样我们就无需考虑多项式的度数;同时,这一步操作不会影响到点值的大小,也不会影响到最终插出的多项式的度数 (想一想,为什么)。
代码:(qqq 的作用下文会提及)
int p = 1, q = -1;
while(p <= n + m) ++q, p <<= 1;
- 接着,我们对两个多项式 f(x)f(x)f(x) 和 g(x)g(x)g(x) 分别跑 FFT\operatorname{FFT}FFT。在 FFT\operatorname{FFT}FFT 运行过程中,如果当前多项式长度为 111,直接返回系数;否则,将当前的多项式 f(x)f(x)f(x) 按照系数底数的奇偶性将项分类(这里请读者自己想一想为什么不可以直接对半分类),将其拆分为两个多项式,然后分治。
但是,如果这一步直接采用递归,时间似乎会有些吃不消。
我们不妨来探讨一下系数究竟是怎样分配的:(以 n=8n = 8n=8 为例)
{a0,a1,a2,a3,a4,a5,a6,a7}↓{a0,a2,a4,a6}{a1,a3,a5,a7}↓{a0,a4}{a2,a6}{a1,a5}{a3,a7}↓{a0}{a4}{a2}{a6}{a1}{a5}{a3}{a7}\{a_0, a_1, a_2, a_3, a_4, a_5, a_6, a_7\} \\ \downarrow \\ \{a_0,a_2,a_4,a_6\}~\{a_1,a_3,a_5,a_7\} \\ \downarrow \\ \{a_0, a_4\}~\{a_2, a_6\}~\{a_1, a_5\}~\{a_3, a_7\} \\ \downarrow \\ \{a_0\}~\{a_4\}~\{a_2\}~\{a_6\}~\{a_1\}~\{a_5\}~\{a_3\}~\{a_7\} {a0,a1,a2,a3,a4,a5,a6,a7}↓{a0,a2,a4,a6} {a1,a3,a5,a7}↓{a0,a4} {a2,a6} {a1,a5} {a3,a7}↓{a0} {a4} {a2} {a6} {a1} {a5} {a3} {a7}
把每个系数的底数分离:
0,4,2,6,1,5,3,70, 4, 2, 6, 1, 5, 3, 7 0,4,2,6,1,5,3,7
转换成二进制:
000,100,010,110,001,101,011,111000, 100, 010, 110, 001, 101, 011, 111 000,100,010,110,001,101,011,111
我们再把它们翻转过来:
000,001,010,011,100,101,110,111000, 001, 010, 011, 100, 101, 110, 111 000,001,010,011,100,101,110,111
这不就是从小到大排序的吗?
所以我们就有了如下代码:(设 rir_iri 为分配完系数后第 iii 个位置上的系数)
for(register int i = 0; i < p; i++) r[i] = (r[i >> 1] >> 1) | ((i & 1) << q);
解释一下:第 iii 个位置的 rrr,不就等于第 ⌊i2⌋\lfloor\frac{i}{2}\rfloor⌊2i⌋ 个位置的 rrr 右移一位吗?
如果 iii 是奇数,我们再在最高位补上一个 111 即可(qqq 的作用就在这里)。
以上过程称为 Rader\operatorname{Rader}Rader 排序。
- 用拆分出的两个多项式的点值,求出当前多项式的点值。
代码:(Complex\operatorname{Complex}Complex 为复数类,定义了构造函数,重定义了乘法)
inline void FFT(Complex *f)
{for(register int i = 0; i < p; i++) if(i < r[i]) swap(f[i], f[r[i]]);for(register int len = 2; len <= p; len <<= 1){int k = len >> 1;Complex _w(cos(PI / k), sin(PI / k));for(register int i = 0; i < p; i += len){Complex w(1.0, 0.0);for(register int j = 0; j < k; j++){Complex u = f[i + j], v = w * f[i + j + k];f[i + j] = u + v;f[i + j + k] = u - v;w = w * _w;}}}return;
}
- 接着,我们将 fff 和 ggg 对应的点值相乘,时间复杂度为 O(n)O(n)O(n)。
你以为结束了?并没有,我们还有第五步:
- 最后,我们将多项式插值出每一项的系数,算法结束。我们称这一步叫 IFFT\operatorname{IFFT}IFFT。
“算法结束” 四个字就在这里,近在咫尺,却又远在天边。
如果用拉格朗日插值计算,时间复杂度还是 O(n2)O(n^2)O(n2),功亏一篑。
难道前面的分析过程都只能打水漂?
不不不,我们冷静分析一波。
看看下面这张图:
多项式乘法的过程实际上类似上图中的矩阵乘法。
那么我们想得到后面的系数矩阵,不就只要把中间的这个矩阵求逆就行了吗!
而这个逆矩阵非常特殊:
它等于原矩阵的每个值求倒数,再乘上一个 1n\frac{1}{n}n1。
(然而笔者线性代数太菜了,无法解释其原因。)
既然无法解释,那就考虑推式子证明吧:
设 yky_{k}yk 是 f(x),g(x)f(x),g(x)f(x),g(x) 在傅里叶变换后,在 x=ωpkx = \omega_p^kx=ωpk 处点值相乘的结果。
我们设多项式 s(x)=y0+y1x+y2x2+⋯+yp−1xp−1s(x) = y_0 + y_1 x + y_2 x^2 + \cdots + y_{p - 1} x ^{p - 1}s(x)=y0+y1x+y2x2+⋯+yp−1xp−1 在 x=ωn0,ωn−1,⋯⋯,ωn−(p−1)x = \omega_n^{0}, \omega_n^{-1}, \cdots\cdots,\omega_n^{-(p - 1)}x=ωn0,ωn−1,⋯⋯,ωn−(p−1) 处的点值分别为 u0∼p−1u_{0 \sim p - 1}u0∼p−1,即满足:
uk=∑i=0p−1yi(ωp−k)iu_k = \sum_{i = 0}^{p - 1} y_i(\omega_p^{-k})^i uk=i=0∑p−1yi(ωp−k)i
现在我们要用它证明等式 ck=ukpc_k = \frac{u_k}{p}ck=puk 成立,其中 ckc_kck 指最终 f(x)f(x)f(x) 和 g(x)g(x)g(x) 的乘法积的系数。
我们直接莽式子:
uk=∑i=0p−1yi(ωp−k)i=∑i=0p−1(∑j=0p−1cj(ωpi)j)(ωp−k)i=∑i=0p−1∑j=0p−1cj(ωpj−k)i=∑j=0p−1cj∑i=0p−1(ωpj−k)i\begin{aligned} u_k &= \sum_{i = 0}^{p - 1} y_i(\omega_p^{-k})^i \\ &= \sum_{i = 0}^{p - 1} (\sum_{j = 0}^{p - 1}c_j(\omega_p^i)^j)(\omega_p^{-k})^i \\ &= \sum_{i = 0}^{p - 1} \sum_{j = 0}^{p - 1}c_j(\omega_p^{j - k})^i \\ &= \sum_{j = 0}^{p - 1}c_j \sum_{i = 0}^{p - 1} (\omega_p^{j - k})^i \end{aligned} uk=i=0∑p−1yi(ωp−k)i=i=0∑p−1(j=0∑p−1cj(ωpi)j)(ωp−k)i=i=0∑p−1j=0∑p−1cj(ωpj−k)i=j=0∑p−1cji=0∑p−1(ωpj−k)i
然后对 ∑i=0p−1(ωpj−k)i\sum_{i = 0}^{p - 1} (\omega_p^{j - k})^i∑i=0p−1(ωpj−k)i 这一部分分讨,设 v=j−kv = j - kv=j−k,则该式等于 ∑i=0p−1(ωpv)i\sum_{i = 0}^{p - 1} (\omega_p^v)^i∑i=0p−1(ωpv)i。
在这个式子的意义下,这就是一个等比数列求和。
如果公比 ωpv=1\omega_p^v = 1ωpv=1,即 v=0v = 0v=0,则此时原式等于 ppp;
否则,套用等比数列公式,原式等于:
(ωv)p−1ωpv−1=(ωp)v−1ωpv−1=1−1ωpv−1=0\begin{aligned} &\frac{(\omega^v)^p - 1}{\omega_p^v - 1} \\ =&\frac{(\omega^p)^v - 1}{\omega_p^v - 1} \\ =&\frac{1 - 1}{\omega_p^v - 1} \\ =& 0 \end{aligned} ===ωpv−1(ωv)p−1ωpv−1(ωp)v−1ωpv−11−10
故当且仅当 v=j−k=0v = j - k = 0v=j−k=0,即 j=kj = kj=k 时,后面的这一部分才会产生贡献,则有 uk=pcku_k = pc_kuk=pck,即 ck=1pukc_k = \frac{1}{p}u_kck=p1uk。
得证。
然后可以发现,FFT\operatorname{FFT}FFT 和 IFFT\operatorname{IFFT}IFFT 的代码可以合为一份:
inline void FFT(Complex *f, double t)
{for(register int i = 0; i < p; i++) if(i < r[i]) swap(f[i], f[r[i]]);for(register int len = 2; len <= p; len <<= 1){int k = len >> 1;Complex _w(cos(PI / k), t * sin(PI / k));for(register int i = 0; i < p; i += len){Complex w(1.0, 0.0);for(register int j = 0; j < k; j++){Complex u = f[i + j], v = w * f[i + j + k];f[i + j] = u + v;f[i + j + k] = u - v;w = w * _w;}}}for(register int i = 0; i < p; i++) f[i].r = (int)(f[i].r / p + 0.5);return;
}
当运行 FFT\operatorname{FFT}FFT 时,我们令 t=1t = 1t=1 即可;当运行 IFFT\operatorname{IFFT}IFFT 时,我们令 t=−1t = -1t=−1 即可。
(注意:由于 cos\coscos 和 sin\sinsin 的精度本身就十分地不稳定,加上复数乘法的运算次数较多,我们最后计算答案的时候需要处理这个误差。)
这样,算法真正大功告成啦!
优化:
可以发现,对于一个复数 a+bia + bia+bi,有 (a+bi)2=(a2−b2)+2abi(a + bi)^2 = (a^2 - b^2) + 2abi(a+bi)2=(a2−b2)+2abi。
如果我们把 g(x)g(x)g(x) 放到 f(x)f(x)f(x) 的虚部上,对 f(x)f(x)f(x) 跑一次 FFT\operatorname{FFT}FFT,然后将 f(x)f(x)f(x) 的每个点值变为其平方。那么,虚部除以 222 不就是我们想要的值吗?
这样,我们就可以只跑一遍 FFT\operatorname{FFT}FFT,一遍 IFFT\operatorname{IFFT}IFFT 即可,常数优化至原来的 23\frac{2}{3}32。
然而,FFT\operatorname{FFT}FFT 的精度仍然是一个令人头疼的问题。我们想考虑一种方式,使得整个运算建立在整数域上。
整数,想到数论,有一个东西恰好符合其所有要求——原根。
关于原根的定义和性质,可以参考我的博客整除和同余相关理论。
可以发现,使得单位根可用于 FFT\operatorname{FFT}FFT 的性质,原根同样满足:
- nnn 次原根计算公式为 gnk=gk(p−1)nmodpg_n^k = g^{\frac{k(p - 1)}{n}} \bmod~pgnk=gnk(p−1)mod p,其中 ppp 为模数,ggg 特指模 ppp 的最小原根。
这里的 ppp 一般取 998244353998244353998244353,它的最小原根等于 333,并且有 998244353=223×7×17+1998244353 = 2^{23}\times 7\times 17 + 1998244353=223×7×17+1,其中 223=83886082^{23} = 8388608223=8388608,其大小完全可以满足我们的需求。
同样,我们也可以得出 gnn=gn0≡1(modp)g_n^n = g_n^0 \equiv 1~(\bmod ~p)gnn=gn0≡1 (mod p) 和 gnn2≡−1(modp)g_n^{\frac{n}{2}} \equiv -1~(\bmod ~p)gn2n≡−1 (mod p) 以及它们的推论。
- 原根同样存在消去引理和折半引理。
所以,在 FFT\operatorname{FFT}FFT 中对多项式的变换,在 NTT\operatorname{NTT}NTT 中同样适用。同时,也需要 Rader\operatorname{Rader}Rader 排序。
同理,对于 INTT\operatorname{INTT}INTT,原根同样可以在原来的基础上求倒数再乘 1n\frac{1}{n}n1,只需要求逆元即可。
代码:
#define MOD 998244353
#define G 3
#define InvG 332748118inline int GetMOD(int k) { if(k >= MOD) k -= MOD; return k; }inline int Pow(int k, int p)
{int res = 1;while(p){if(p & 1) res = 1LL * res * k % MOD;k = 1LL * k * k % MOD;p >>= 1;}return res;
}inline void NTT(int *f, bool Inverse = false)
{for(register int i = 0; i < p; i++) if(i < r[i]) swap(f[i], f[r[i]]);for(register int len = 2; len <= p; len <<= 1){int k = len >> 1, g = Pow(Inverse ? InvG : G, (MOD - 1) / len);for(register int i = 0; i < p; i += len){int w = 1;for(register int j = 0; j < k; j++){int u = f[i + j], v = 1LL * w * f[i + j + k] % MOD;f[i + j] = GetMOD(u + v);f[i + j + k] = GetMOD(u - v + MOD);w = 1LL * w * g % MOD;}}}return;
}
后记:
强推神佬的视频:快速傅里叶变换(FFT\operatorname{FFT}FFT)——有史以来最巧妙的算法?
强推神佬的博客:FFT\operatorname{FFT}FFT NTT\operatorname{NTT}NTT
ToBeContinued⋯⋯\mathit{To~Be~Continued\cdots\cdots}To Be Continued⋯⋯
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- node理解
node 创建第一个应用 Node.js 应用是由哪几部分组成的: 引入 required 模块:我们可以使用 require 指令来载入 Node.js 模块。 创建服务器:服务器可以监听客户端的请求,类似于 Apache 、Nginx 等 HTTP 服务器。 接收请求与响应…...
2024/4/14 7:37:01 - Matplotlib系列(七):动画
Matplotlib系列目录 文章目录一、 简介二、 思维导图三、 Matplotlib动画及图形修改操作1. 手写代码更新图形实现动画2. animation模块动画2.1 Animation类简介2.2 FuncAnimation动画2.3 ArtistAnimation动画2.4 保存动画3. 常用图形更新函数参考文章一、 简介 matplotlib的…...
2024/5/8 1:12:23 - 操作系统实验——模拟进程调度功能|CSDN创作打卡
1.实验题目:模拟进程调度功能 2.实验目的:通过本实验,进一步掌握进程调度的功能和实现原理。 3.实验环境: (1)硬件:pc 机。 (2)软件:Windows OS,V…...
2024/4/14 23:55:28 - 解决win10自带vpn无法连接
解决方法: 1.打开设备管理器 2.找到网络适配器(WAN-Miniport (IP))执行以下操作 3.重启电脑...
2024/4/15 6:44:52 - ?shell select
#!/bin/bashPS3"请选择要执行的程序. :" select program in netstat -antolp|grep "ESTABLISHED" exit date pwd do$program done ~...
2024/4/19 8:34:59 - 逆向:画堆栈图08
画堆栈图看两个寄存器:栈底(EBP),栈顶(ESP) 利用od,画图工具是excle 程序是Hello Word.exe 调用前是堆栈初始图,然后一步一步f8往下执行 总结就是: MOV EAX,DWORD PTR SS:[EBP8] …...
2024/4/14 7:36:41 - Servlet技术
大纲 Servlet技术接口及实现类servlet配置cookie&session转发与重定向过滤器与监听器Servlet并发技术Jsp 1. Servlet技术 Servlet Server Applet Server:服务端 Applet:Java的应用程序 即,Servelet是运行在服务端的Java程序。 Servle…...
2024/4/14 7:36:41 - HTML 标签使用
标签使用 展示效果...
2024/4/14 7:37:11 - python学习之旅(3)
python函数 函数的定义 在Python中,定义一个函数要使用def语句,依次写出:“def 函数名(参数):”,然后,在缩进块中编写函数体,函数的返回值用return语句返回。 以定义一个求长方形面积的函数为例: # 定义函数 def re…...
2024/4/14 7:36:51 - EFCore-1搭建开发环境
使用SQL Server数据库作为学习的目标数据库,EFCore使用Code First模式进行项目初始化。 项目整体目录如图所示: 1.创建实体类 using System;namespace EFCoreProject {/// <summary>/// Book实体类/// </summary>public class Book{public…...
2024/4/14 7:36:56 - 七天玩转Redis | 打卡第三天 使用Redis的地理位置、基数统计、位图场景
今天学习的内容 今天学习了Redis在地理位置、基数统计、位图场景上的使用 今天的收获 今天的收获,了解了Redis在另外几个场景下的应用,比如说地理位置长的应用,在以前我只知道用一些特殊的api来计算距离,没想到Redis还提供这样…...
2024/4/14 7:36:56 - 【Android】Android界面设计
Android界面设计也被称为布局,其中常见的布局包括: 相对布局RelativeLayout线性布局LinearLayout表格布局TableLayout网络布局GridLayout帧布局FrameLayout UI设计相关的几个概念 View View在Android中可以理解为视图。它占据屏幕上的一块矩形区域&am…...
2024/4/14 7:37:11 - Scala WorldCount简单案例和简单复杂案例
WorldCount简单案例 package scala.com.lqs.chapter02.day06/*** Author lqs* Date 2022年01月22日 09:31:56* Version 1.0.0* ClassName WordCount* Describe*/ object WordCount {/* def main(args: Array[String]): Unit {val stringList List("Hello Scala Hbase k…...
2024/4/14 7:36:56 - ORACLE与数据库原理作业 习题十
首先声明:这个是我尽力自己做的,不能保证百分之百正确,毕竟老师没发答案给我对 习题十一、选择题二、填空题三、简答题一、选择题 数据库应用系统中的核心问题是(A ) A. 数据库设计 B. 数据库系统设计 C. 数据库维护 …...
2024/4/15 13:44:41 - jquery学习
学习网址 https://jquery.cuishifeng.cn/source.html调用id var username document.getElementById("username");var username1 $("#username");var div1 $("#div1");写css样式 <head> <style>.redBorder{border: 2px solid red}…...
2024/4/14 7:37:06 - ORACLE与数据库原理作业 习题九
首先声明:这个是我尽力自己做的,不能保证百分之百正确,毕竟老师没发答案给我对,但确实是做出来了 习题九一、选择题二、填空题三、简答题一、选择题 1.视图机制提高了数据库系统的( B )。 A.完…...
2024/4/14 7:36:41 - 设计模式-代理模式(python)
代理模式 在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。 在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。 介绍 意图:为其他对象提供…...
2024/4/17 22:53:00 - Java:JDK的下载安装和环境变量配置
一、JDK的下载 1.进入下载网址:Java Software | Oracle https://www.oracle.com/java/ 进入页面: 2.没用过Oracle的小伙伴需要先注册一个账号,点击右面右上角的人像创建新账号,如果有可以直接选择JDK下载 注册新账号页面&#…...
2024/4/19 14:55:24 - (数据库系统概论|王珊)第五章数据库完整性-第四、六、七节:约束命名子句、断言和触发器
文章目录一:完整性约束命名子句(CONSTRAINT)(1)完整性约束命名子句(2)修改表中的完整性限制(ASSERTION)二:断言(1)创建断言࿰…...
2024/4/7 16:13:56 - SpringBoot框架整合MyBatis
添加 MyBatis 启动依赖 参考官网mybatis.org/spring,找到Spring Boot菜单选项.基于菜单项找到MyBatis启动依赖,一定要设置版本,Spring Boot 中没有设置 MyBatis 的版本(否则pom.xml文件会报错) <dependency> <grou…...
2024/4/14 7:37:32
最新文章
- docker搭建代码审计平台sonarqube
docker搭建代码审计平台sonarqube 一、代码审计关注的质量指标二、静态分析技术分类三、sonarqube流程四、快速搭建sonarqube五、sonarqube scanner的安装和使用 一、代码审计关注的质量指标 代码坏味道 代码规范技术债评估 bug和漏洞代码重复度单测与集成 测试用例数量覆盖率…...
2024/5/8 10:43:35 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/5/7 10:36:02 - WPS二次开发专题:WPS SDK实现文档打印功能
作者持续关注WPS二次开发专题系列,持续为大家带来更多有价值的WPS开发技术细节,如果能够帮助到您,请帮忙来个一键三连,更多问题请联系我(QQ:250325397) 在办公场景或者家教场景中经常碰到需要对文档进行打印…...
2024/5/6 20:11:22 - 【THM】Protocols and Servers(协议和服务器)-初级渗透测试
介绍 这个房间向用户介绍了一些常用的协议,例如: HTTP协议文件传输协议POP3邮件传输协议IMAP每个协议的每个任务都旨在帮助我们了解底层发生的情况,并且通常被优雅的GUI(图形用户界面)隐藏。我们将使用简单的 Telnet 客户端来使用上述协议进行“对话”,以充分了解GUI客户…...
2024/5/7 16:00:50 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/5/8 6:01:22 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/5/7 9:45:25 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/5/4 23:54:56 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/5/7 14:25:14 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/5/4 23:54:56 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/5/4 23:55:05 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/5/4 23:54:56 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/5/7 11:36:39 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/5/4 23:54:56 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/5/6 1:40:42 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/5/4 23:54:56 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/5/4 23:55:17 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/5/7 9:26:26 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/5/4 23:54:56 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/5/4 23:55:06 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/5/5 8:13:33 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/5/4 23:55:16 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/5/4 23:54:58 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/5/6 21:42:42 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/5/4 23:54:56 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57