第一種スターリング数(符号なし)計算
ちょうどk個の巡回に分かれるn個の並べ替えを数えます。5個を2つの巡回に分けると50通り、4個を2つなら11通り、3個を1つの巡回にすると2通りです。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 要素数
- 5
- 巡回数
- 2
- 値
- 50
- 最大n
- 200
- 最大k
- 200
この第一種スターリング数(符号なし)計算ツールは、n個の要素からなる集合をちょうどk個の互いに素な巡回に分解する順列の数c(n, k)を返します。同じ係数は符号付き第一種スターリング数の絶対値としても現れ、古典的な特殊関数の恒等式では上昇階乗を通常のべき乗に変換する役割も果たします。よく知られた検証例として、要素5個・巡回2個で50、要素4個・巡回2個で11、要素3個・巡回1個で2(これは(3−1)!に一致します)が挙げられます。計算エンジンは漸化式c(n,k)=c(n−1,k−1)+(n−1)·c(n−1,k)のみに基づく決定的なBigInt動的計画法を用いており、ネットワーク通信、サンプリング、日付依存の近道は一切ありません。
第一種スターリング数(符号なし)の意味と結果の見方
第一種スターリング数(符号なし)c(n, k)は、n個のラベル付き要素の順列のうち、互いに素な巡回への分解がちょうどk個の巡回になるものの数を数えます。この組合せ論的な解釈は多くの学生が最初に出会うものです。n文字からなる1つの長い巡回はc(n, 1)に寄与し、これは(n−1)!
に等しくなります。 恒等置換はc(n, n)にのみ寄与し、これは1です。中間的な巡回数はその間の三角形を埋めていきます。代数的には、同じ数は上昇階乗x(x+1)…(x+n−1)をxの多項式として展開したときの係数c(n, k)としても現れます。
この計算ツールは、指定されたnとk、小数文字列としての正確な値、c(5, 2)のような短い式タグ、そして公開されている上限値を返すため、クライアントはバッチを送信する前に検証できます。真実として提示される近似浮動小数点の経路はなく、順列のランダムサンプリングもありません。
拒否されるケースには、nまたはkの欠落、非整数、分数、指数表記、文書化された上限を超える値、負のk、そしてnを超えるkが含まれます。kがnを超えてはならないというルールは数学的な定義域と一致しています。n個の要素をn個より多い巡回に分割する方法は存在しないためです。
符号付き第一種スターリング数、第二種スターリング数、ベル数、あるいは実際の順列の列挙が必要な場合は、それぞれの専用ツールをご利用ください。このページはJavaScriptの安全な整数を超えて桁が失われることのない、正確なBigInt出力による符号なし第一種の巡回数のみに答えます。
第一種スターリング数の巡回数が学習・コード・モデリングに役立つ場面
学生が符号なし第一種スターリング数に出会うのは、教科書が特定の巡回数を持つ順列がいくつあるかを尋ねるとき、上昇階乗の展開演習で正確な係数が必要なとき、あるいは巡回指数の母関数を通常のべき乗と関連付けなければならないときです。
教師は、大きな整数を丸めたり気づかないうちに指数表記に切り替えたりする不透明な電卓アプリを信頼することなく、手頃なnとkについて模範解答をあらかじめ生成できます。
開発者は同じ契約をスクリプトから呼び出し、決定的なテストベクターの種を作ったり、巡回数を条件とするランダム順列モデルの規模を決めたり、対数空間の近似ではなく正確なc(n, k)を要求するプログラミング課題の条件を満たしたりします。
コンテストの練習では、時間的な制約の中でOEISのテーブルをダウンロードせずに解答を検証できる、高速でオフラインの第一種順位の情報源がしばしば必要になります。
プロダクトおよびリサーチのアナリストは、n個のラベル付きアイテムの順列が目標とする巡回構造に収まる場合の数を見積もる際にこの値を用いており、これはカードシャッフルや暗号学の教育デモ、基礎的な数え上げ組合せ論の演習で登場します。このページでの計算はすべてブラウザ内で完結します。c(n, 1)の特殊な場合として(n−1)!
活用例
宿題と巡回数の検証
巡回数が固定された順列や上昇階乗の展開に関する教科書の演習問題向けに、正確なc(n, k)の値を調べられます。
決定的なテストフィクスチャ
テーブルを手作業で保守することなく、ユニットテストやプロパティチェック、CIアサーション向けに再現可能な第一種スターリング数の小数文字列を生成できます。
コンテストとモデルの準備
近似値ではなく正確なBigInt係数を用いて、プログラミングコンテストの答え合わせや巡回数を条件とする順列モデルの規模決定を行えます。
よくある質問
c(n, k)はどのように定義されますか?
第一種スターリング数(符号なし)c(n, k)は、n個の要素の順列のうち、互いに素な巡回がちょうどk個であるものの数を数えます。これは符号付き第一種スターリング数の絶対値に等しくなります。
これは第二種スターリング数と同じですか?
いいえ。 第二種は集合をラベルなしの空でない部分集合に分割する場合の数を数えます。このツールは第一種(順列の巡回数)のみを計算します。
結果が数値ではなく文字列で返されるのはなぜですか?
第一種スターリング数は急速に増大し、JavaScriptの安全な整数の範囲を超えることがあります。
kがnより大きいとどうなりますか?
計算は分かりやすいメッセージとともに受け付けられません。n個の要素をn個より多い巡回に分けることはできないため、巡回の数は0からnの範囲で指定してください。
nはいくつまで入力できますか?
nもkも200まで入力できます。これらの数は階乗に近い速さで大きくなりますが、この範囲内なら結果は正確なまますぐに出ます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/combo/stirling-first \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":5,"k":2}'const res = await fetch("https://api.kit.forhosting.com/combo/stirling-first", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 5,
"k": 2
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/combo/stirling-first",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 5,
"k": 2
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/combo/stirling-first", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":5,"k":2}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":5,"k":2}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/combo/stirling-first", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"n": 5,
"k": 2
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "combo.stirling_first",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_n | 200 |
max_k | 200 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
宿題やコンテスト対策、コーディング演習にはブラウザで無料でご利用いただき、CIでの巡回数フィクスチャや組合せ論のデモ、教材作成が必要な場合はAPIを$0.002(成功したリクエストごと)でご利用ください。
第一種スターリング数(符号なし)の意味とレスポンスの内容
エンジンはサポート範囲内で正確な漸化式を構築するか、invalid_inputで入力を拒否するかのいずれかです。ワークシート、ユニットテスト、そしてAPI利用者にも適した設計です。
nとkの読み取り方法、そしてBigIntがすべての桁を正確に保つ仕組み
先頭の任意のプラス記号は許可されますが、埋め込まれた空白、16進数プレフィックス、負の符号、指数表記は明確なメッセージとともに拒否されるため、不正なセルが誤った件数につながることはありません。nが0でkも0の場合は1を返し、離散数学で用いられる空順列の慣習に一致します。エンジンはnとkの両方に200というハード上限を設けており、巡回数がおおむね階乗的に増加するにもかかわらず、無料のブラウザ経路とエッジWorkerの双方でメモリと遅延を予測可能な範囲に収めています。計算にはO(n×k)の行単位動的計画法を用いており、各行iは前の行の値を標準の漸化式と組み合わせることで、kまでの各jについてc(i, j)を保持するため、中間値は順列の完全なリストを構築することなく正確なまま保たれます。優先されるフィールドは要素数を表すnと巡回数を表すkですが、nの別名としてsizeとelements、kの別名としてcyclesとnum_cyclesも受け付けます。これにより、スプレッドシートやクエリ文字列、型付きフォームが同じ契約を再利用できます。すべての中間値はBigIntであり、最終値はtoStringでシリアライズされるため、JSONがIEEE-754の倍精度浮動小数点数の53ビット目以降のように桁を失うことはありません。自動化されたパイプライン内でスターリングの漸化式を自分で再実装することなく同一の数学的結果が必要な場合は、このページの無料ブラウザ実行と有料APIを組み合わせてご利用ください。
第一種スターリング数の巡回数が学習・コード・モデリングに役立つ場面
API経由では成功した検索1件につき$0.002がかかり、検証に失敗したリクエストは課金されず、レスポンスが返された後は何も保存されません。この無料のインタラクティブな探索と、同一結果を返す有料APIという分割は、KITのtier-Aカタログの他のツールと同様であり、教室でのデモから自動化パイプラインへ、数学的な結果を変えることなく移行できます。が必要なときは階乗ツールと、関連する組合せ論的係数が必要なときは二項係数ツールと、そして無料で決定的な組合せ論ヘルパーの小さなラボを構築する際はその他の数学系エンドポイントと組み合わせてご利用ください。
技術的な質問
第一種スターリング数の計算ツールの料金はいくらですか?
このページのブラウザ版は無料です。API経由では成功したリクエストごとに$0.002がかかり、無効な入力には課金されません。
kが負またはnより大きい場合はどうなりますか?
どちらの場合もinvalid_inputで拒否されます。kは非負の整数であり、nを超えてはなりません。