終於把多項式板子打完啦!
最後補充一點三角函式的芝士
求cosf
\cos f
cosf
與sinf
\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
sinf=
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 多...