StirlingBell
クラス · 第2種スターリング数・ベル数
template <internal::modint mint = modint998>
struct StirlingBell;
概要
第2種スターリング数・ベル数
二項係数と累乗を使い、1要素または部分和をオンデマンドに求める。
テンプレートパラメータ
| 名前 | 説明 |
|---|---|
mint |
法が素数の modint 型 |
構築・破棄
| 名前 | 説明 | 計算量 |
|---|---|---|
(constructor) |
空の計算テーブルを構築する | $O(1)$ |
メンバ関数
| 名前 | 説明 | 計算量 |
|---|---|---|
stirling |
第2種スターリング数 $S(n,k)$ を返す | $O(k\log n)$ |
bell |
第2種スターリング数の部分和 $\sum_{j=0}^{k}S(n,j)$ を返す | $O(k\log n)$。未構築部分の前計算 $O(k)$ を含む |
メンバの詳細
stirling
mint stirling(int n, int k);
第2種スターリング数 $S(n,k)$ を返す
- パラメータ
n: 行番号。1以上であること - パラメータ
k: 列番号。$1\le k\le n$ であること - 計算量: $O(k\log n)$
bell
mint bell(int n, int k);
第2種スターリング数の部分和 $\sum_{j=0}^{k}S(n,j)$ を返す
$k=n$ のとき通常のベル数 $B_n$ になる。
- パラメータ
n: 行番号。0以上であること - パラメータ
k: 和を取る最大の列番号。0以上であること - 計算量: $O(k\log n)$。未構築部分の前計算 $O(k)$ を含む