透過 MCP 連接 →

輸入計算

數學公式

廣告

結果

第一類斯特林數 s(n,k)
-50
帶符號數值
n 5
k 2

什麼是第一類斯特林數?

帶符號的第一類斯特林數記作 \(s(n,k)\),它是把下降階乘 \(x(x-1)(x-2)\ldots(x-n+1)\) 展開成 \(x\) 的一般冪次時,各項所對應的係數。它的絕對值 \(c(n,k) = |s(n,k)|\) 則有另一層意義:代表 \(n\) 個元素的排列中,恰好能拆解成 \(k\) 個互不相交循環(cycle)的排列數量。兩者透過符號規則 \(s(n,k) = (-1)^{n-k} c(n,k)\) 相互連結。本計算機回傳的是帶符號的數值,與下降階乘的係數慣例完全一致。

使用方法

請輸入兩個非負整數:\(n\)(規模參數)與 \(k\)(循環數目,也就是冪次的指標)。按下計算後,工具會回傳 \(s(n,k)\)。需要注意幾個特殊情形:當 \(k\) 大於 \(n\) 時結果為 0;\(s(n,n)\) 永遠等於 1;而 \(s(0,0)\) 依定義為 1。

公式說明

我們以一張小型的動態規劃表,套用遞迴式 $$s(n+1,k) = s(n,k-1) - n\,s(n,k)$$ 來逐步建立。起始條件為 \(s(0,0)=1\),並令 \(s(n,0)=0\)(當 \(n>0\))以及 \(s(0,k)=0\)(當 \(k>0\))。由於每一列都只需從上一列推導,因此不必預先儲存龐大的查表資料。遞迴式中那個負號項,正是讓正負號交替出現的關鍵。

Advertisement
展示 s(n+1,k) 由 s(n,k-1) 和 s(n,k) 構成的遞迴圖
遞迴關係用上一列的兩個值建立每個斯特靈數。

運算範例

來計算 \(s(5,2)\)。第 5 列的無符號循環數分別為 \(c(5,1)=24\)、\(c(5,2)=50\)、\(c(5,3)=35\)、\(c(5,4)=10\)、\(c(5,5)=1\)。符號為 \((-1)^{5-2} = -1\),因此 \(s(5,2) = -50\)。我們可以驗證:$$x(x-1)(x-2)(x-3)(x-4) = x^5 - 10x^4 + 35x^3 - 50x^2 + 24x$$,其中 \(x^2\) 的係數確實是 \(-50\)。

帶符號第一類斯特靈數的三角形表格,其中一個元素被反白顯示
排成三角形後,每個元素都由其上方的兩個儲存格計算得出。

常見問題

為什麼結果會是負數?因為這是帶符號的版本;下降階乘中 \(x^k\) 的係數會依 \((-1)^{n-k}\) 規則正負交替。

該如何取得無符號的循環數?取絕對值即可:\(c(n,k) = |s(n,k)|\)。

同一列的所有無符號數值加總會是多少?把整列的 \(c(n,k)\) 對所有 \(k\) 相加,結果恰好等於 \(n!\)(\(n\) 的階乘)。

最後更新: