日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

「学习笔记」欧拉数

發(fā)布時間:2024/8/26 综合教程 32 生活家
生活随笔 收集整理的這篇文章主要介紹了 「学习笔记」欧拉数 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

定義

記一個排列 (P) 的升高為 (k) 當(dāng)且僅當(dāng)存在 (k) 個位置 (i) 使得 (P_i<P_{i+1})。

那么定義歐拉數(shù) (leftlangleegin{matrix}n\kend{matrix}ightangle) 表示長度為 (n) 且有 (k) 個上升的排列的數(shù)量。

遞推式

通過討論 (n) 在最左邊,最右邊還是中間可以得出轉(zhuǎn)移:

[leftlangleegin{matrix}n\kend{matrix}ightangle = (k + 1)leftlangleegin{matrix}n - 1\kend{matrix}ightangle + (n - k) leftlangleegin{matrix}n - 1\k - 1end{matrix}ightangle
]

計算

高妙的組合意義

考慮計算 (leftlangleegin{matrix}n\kend{matrix}ightangle / n!) 也就是概率,可以發(fā)現(xiàn),對于 (n) 個實數(shù)的均勻分布 ((a_1, a_2, cdots, a_n) in (0, 1)^n) 產(chǎn)生和排列 (P) 相同的偏序關(guān)系的概率是 (frac 1{n!}),這樣我們就可以將問題轉(zhuǎn)化為 (a_i < a_{i + 1}) 有 (k) 個的概率。

將 (a) 進(jìn)行差分,定義 (a_0 = 0, b_i = (a_i - a_{i - 1}) mod 1),顯然 (b_i in (0, 1))。

考慮 (b_i) 的實際意義,發(fā)現(xiàn)當(dāng) (a_{i - 1} < a_i) 時,(b_i = a_i - a_{i - 1}),否則 (b_i = 1 + a_i - a_{i - 1}),而 (a_{i - 1} < a_{i}) 有 (k + 1) 個((a_0 = 0)),所以說 (sum b_i = n - k - 1 + a_n in (n - k - 1, n - k))。這樣,問題就變?yōu)榱私o定 (n) 個 ((0, 1)) 之間的實數(shù) (x_1, x_2, cdots, x_n),求滿足 (sum x_i in (n - k - 1, n - k)) 的概率,可以轉(zhuǎn)化為 (sum x_i < n - k) 的概率然后差分,設(shè)其為 (F(n - k))。

使用幾何概型,由于樣本空間的“體積”是 (1),所以答案就是滿足條件的區(qū)域的“體積”。

設(shè) (G(k)) 表示 (n) 個隨機(jī)變量沒有限制的情況下的滿足 (sum x_i < k) 的區(qū)域的“體積”。

考慮容斥有多少個 (x_i > 1),能夠列出式子:

[F(k) = sum_{i = 0}^k (-1)^i inom ni G(k - i)
]

接下來只需要知道如何計算 (G(k)) 即可。

將 (n) 個變量做前綴和,設(shè)為 (t_i),那么只需要滿足 (t_i < t_{i + 1}) 且 (t_n < k) 的條件即可,由最開始的性質(zhì),可以將其對應(yīng)到排列上得出概率為 (frac 1 {n!})。又因為 (G(k)) 是“體積”,所以 (G(k) = frac {k^n}{n!}),即:

[F(k) = frac 1 {n!} sum_{i=0}^k (-1)^i inom ni (k - i)^n
]

于是 (leftlangleegin{matrix}n\kend{matrix}ightangle) 可以做到計算一個 (mathcal O(n)),計算一行 (mathcal O(n log n))。

直接容斥

廣告

設(shè) (F(n, k)) 表示長度為 (n) 的排列,欽定有 (k) 個 < 的方案數(shù)。

考慮將 < 看成邊,那么排列中將會形成 (n - k) 個連通塊,而連通塊內(nèi)部必須有序,連通塊之間可以任意打亂順序,所以方案數(shù)就是 ((n - k)!egin{Bmatrix} n\n - k end{Bmatrix})。

由二項式反演:

[egin{aligned}
leftlangleegin{matrix}n\kend{matrix}ightangle &= sum_{i = k}^n (-1)^{i - k} inom ik (n - i)!egin{Bmatrix} n\n - i end{Bmatrix}\
&=sum_{i = k}^n (-1)^{i - k} inom ik sum_{j = 0}^{n - i} inom{n - i} j (-1)^{n - i - j} j^n\
&=sum_{j = 0}^{n - k} j^n (-1)^{n - k - j} sum_{i} inom ik inom {n - i}j\
&= sum_{j = 0}^{n - k} (-1)^{n - k - j} j^n inom {n + 1} {k + j + 1}
end{aligned}
]

解釋一下最后一步吧,由于 (inom ik = [x^{i - k}] frac 1{(1 - x)^{k + 1}}, inom {n - i}j = [x^{n - i - j}] frac 1{(1 - x)^{j + 1}}),所以 (sum_i inom ik inom {n - i}j = [x^{n - j - k}] frac 1 {(1 - x)^{k + j + 2}} = inom {n + 1}{k + j + 1})。

同樣可以直接卷積求出一行歐拉數(shù)。

總結(jié)

以上是生活随笔為你收集整理的「学习笔记」欧拉数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。