keisoku

第2種スターリング数 S(n,k) 計算

n個の要素をk個の空でない部分集合に分割する場合の数(第2種スターリング数)を漸化式で厳密に計算。ベル数や各kの値も表示します。

入力

n(要素数)と k(部分集合の個数)を入力すると、第2種スターリング数 S(n,k) を計算します。n個の区別できる要素を空でない k 個の集合に分ける場合の数です。

0 以上 200 以下の整数

0 以上の整数

計算結果

S(5, 2)(k個の空でない部分集合への分割数)

15

ベル数 B(5)(行の総和)

52

要素数 n

5

部分集合の個数 k

2

n = 5 の行 S(n,0) 〜 S(n,n)

S(n, k)
S(5, 0)0
S(5, 1)1
S(5, 2)15
S(5, 3)25
S(5, 4)10
S(5, 5)1

計算方法・使い方

  • 第2種スターリング数 S(n,k) は、n個の区別できる要素を、空でない k 個の部分集合に分割する方法の数を表します。
  • 漸化式 S(n,k) = k・S(n-1,k) + S(n-1,k-1) で計算します。新しい要素を既存のどれかの集合に入れる(k通り)か、新しい1要素集合を作る場合に対応します。
  • 境界条件は S(0,0) = 1、n が正のとき S(n,0) = 0、k が正のとき S(0,k) = 0 です。また k が n より大きいときは 0 になります。
  • 各行の総和 S(n,0) + S(n,1) + ... + S(n,n) はベル数 B(n) に等しく、n個の要素のすべての分割の総数を表します。
  • 値は急速に増大するため、誤差を避けて多倍長整数(BigInt)で厳密に計算し、結果は文字列として表示します。

お客様の声

このツールを使った感想をお聞かせください。

レビューを投稿する

  1. ホーム
  2. 第2種スターリング数 S(n,k) 計算