【轉】卡特蘭數四個公式(簡單)


公式一
遞歸公式
$h(0)=h(1)=1 $
\(h(n)= h(0)*h(n-1)+h(1)*h(n-2) + ... + h(n-1)*h(0) (n>=2)\)
如果我們用這個公式顯然我們要使用遞歸算法,那么數據一大就在時空上很麻煩

公式二
遞推公式
\(h(n)=h(n-1)*(4*n-2)/(n+1)\)
這個公式應用遞推,看上起十分和善
但對大數據呢?
我們注意到大數據的時候h(n)會很大,這時候題目一般會讓你對某素數取模(當然你可以打高精度(划掉))
但你在取模過程中難保一個h(n)%mod=0
那么根據公式下面所有的數都會等於0,於是你就愉快的WA了

公式三
組合數公式1
\(h(n)=C(2n,n)/(n+1) (n=0,1,2,...)\)
卡特蘭數可以與組合數聯系起來,得到上面的公式
而組合數就是一個楊輝三角,可以遞推得到(這個不屬於這道題的討論范圍我假裝你們都會(逃))
但我們發現對於大數據你要取模,而對於除法你是沒辦法用膜的性質的(當然你可以應用逆元(划掉)),所以造成了麻煩

公式四
組合數公式2
\(h(n)=c(2n,n)-c(2n,n-1) (n=0,1,2,...)\)
與組合數公式1不同這個是兩個組合數的減法
減法是可以用膜的性質的,於是你可以愉快的AC了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM