1. 程式人生 > >Lucas定理 、斯特靈公式

Lucas定理 、斯特靈公式

pagp zrc mba over rpm news fnr aid lfw

斯特靈公式是一條用來取n階乘的近似值的數學公式。

公式為:技術分享圖片

用該公式我們可以用來估算n階乘的值;估算n階乘的在任意進制下的位數。

如何計算在R進制下的位數:我們可以結合對數來計算,比如十進制就是lg(n!)+1,二進制則是log2(n!)+1。

Lucas(盧卡斯)定理

公式為:技術分享圖片(p為質數)

當然,當n較小時,我們可以用組合數裏面的定理來遞推求解

然而當n較大時,顯然時間花費很大。而Lucas定理恰好是解決大組合數取模優解

在這裏由於知識有限,不能完全看懂Lucas定理證明的全部過程。所以就不寫了。

而代碼實現Lucas定理也很簡潔。只需要遞歸就行。

使用Lucas定理的時候需要註意:p不能太大於10^5。

Cnm=Cn/pm/p×Cnmodpmmodp(modp)

Cnm=Cn/pm/p×Cnmodpmmodp(modp)

Cnm=Cn/pm/p×Cnmodpmmodp(modp)

Lucas定理 、斯特靈公式