多項式 多項式跑飛快 石室中學秘傳模板

2021-10-23 10:27:12 字數 3527 閱讀 4190

終於把多項式板子打完啦!

最後補充一點三角函式的芝士

求cos⁡f

\cos f

cosf

與sin⁡f

\sin f

sinf

想到偉大的尤拉公式!

e θi

=cos⁡θ

+i

sin⁡

θe^=\cos \theta +i\sin \theta

eθi=

cosθ+i

sinθ

θ

\theta

θ看成多項式一樣的

推柿子得到:

cos ⁡f

=efi

+e−f

i2

sin⁡f=

efi−

e−fi

2i

\cos f=\frac+e^}\\ \sin f=\frac-e^}

cosf=2

efi+

e−fi

​sinf=

2ief

i−e−

fi​

有點難搞的就只剩虛單位i

ii了!

虛單位。。。虛單位根?

妙啊!聯想醜陋的fft

i

ii是w

4w_4

w4​,有i4=

1i^4=1

i4=1

模意義下呢?

x 4≡

1x^4\equiv 1

x4≡1

x =g

mod−

14

x=g^}

x=g4mo

d−1​

完美下面看下石室中學秘傳板子

#include

using

namespace std;

typedef

long

long ll;

typedef vector<

int> poly;

#define cs const

#define pb push_back

#define in read()

int in

cs int mod=

998244353

,n=5e6+5

;int

add(

int a,

int b)

intdec

(int a,

int b)

intmul

(int a,

int b)

intqpw

(int a,

int b)

return res;

}cs int inv2=mod+

1>>1;

void

print

(cs poly &f)

int rev[n]

,inv[n]

,fac[n]

,ifac[n]

,lim;

void

init

(int deg)

void

init_inv

(int len)

void

ntt(poly &f,

int sgn)}}

if(sgn)

return

;int inv=

qpw(lim,mod-2)

;reverse

(f.begin()

+1,f.end()

);for(

int i=

0;i++i)

f[i]

=mul

(f[i]

,inv)

;return;}

poly operator

+(poly f,poly g)

poly operator

-(poly f,poly g)

poly operator

*(poly a,poly b)

init

(deg)

; a.

resize

(lim)

,ntt

(a,1);

b.resize

(lim)

,ntt

(b,1);

for(

int i=

0;i++i) a[i]

=mul

(a[i]

,b[i]);

ntt(a,0)

; a.

resize

(deg)

;return a;

}poly operator

*(poly a,

int b)

poly der

(poly f)

poly int

(poly f)

void

divx

(poly &f,

int cnt)

void

mulx

(poly &f,

int cnt)

poly inv

(cs poly &a,

int siz)

b.resize

(siz)

;return b;

}poly inv

(cs poly &a)

poly ln

(poly a,

int len)

poly ln

(cs poly &a)

poly exp

(cs poly &a,

int siz)

b.resize

(siz)

;return b;

}poly exp

(cs poly &a)

poly qpw

(poly a,

int k,

int len)

poly qpw

(cs poly &a,

int k)

poly sqrt

(cs poly &a,

int deg)

b.resize

(deg)

;return b;

}poly sqrt

(cs poly &a)

poly operator

/(poly a,poly b)

poly operator

%(cs poly &a,cs poly &b)

cs int w4=

qpw(3,

(mod-1)

/4);

poly cos

(cs poly &a,

int siz)

poly cos

(cs poly &a)

poly sin

(cs poly &a,

int siz)

poly sin

(cs poly &a)

MATLAB多項式及多項式擬合

多項式均表示為陣列形式,陣列元素為多項式降冪係數 1.polyval函式 求多項式在某一點或某幾個點的值.p 1,1,1 x 2 x 1 x 1,0,1 y polyval p,x 另外求函式在某一點或某幾個點的值可以用函式feval.x 1,0,1 y feval x exp x x 注意用的乘法...

數學 多項式 多項式求逆

多項式求逆 前置知識 ntt 給定乙個多項式 f left x right 求乙個多項式 g left x right 使得 f left x right g left x right equiv 1 left bmod 998244353 right 考慮遞迴求解。假定現在已經求出了 g 0 le...

matlab多項式與非多項式擬合

擬合標準 1 原始資料向量與擬合向量之間的距離最小,該距離的度量一般使用誤差平方和表示,即均方誤差 r q y 22 2 當均方誤差最小時,說明構造的擬合向量與原始向量最為接近,這種曲線擬合的方法稱為最小二乘法 3 計算均方誤差最小時的擬合係數,可以通過微積分中求解極值的方法實現 多項式擬合 1 多...