多項係数計算機
大きさの決まった名前つきのグループに物を分ける方法を数えます。6人を区別できる2人ずつの3グループに分けると90通りで、6!を2! 2! 2!で割った値になります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- N
- 6
- グループ
- 2, 2, 2
- 数量
- 90
多項係数は基本的な数え上げの問いに答えます。n個の相異なる要素を、大きさn1、n2、…、nkのk個のラベル付きグループに分けるとき、各グループ内の順序を問わないなら、何通りの割り当てがあるでしょうか。この量はn上の多項係数n1,n2,…,nkとして書かれ、nの階乗を各グループの階乗の積で割った値に等しくなります。グループが二つだけのときはよく知られた二項係数に帰着し、三つ以上では繰り返し文字のある単語の並べ替え、分割表のセル、固定された手札へのカードの配り方を数えます。本機能はBigInt演算で恒等式を評価するため、大きな係数も浮動小数や安全整数の限界を超えても厳密なまま保たれます。
多項係数の意味と計算方法
多項係数は、n個の相異なる対象の集合を、ちょうどnに和が等しい所定の大きさn1、n2、…、nkのk個のラベル付きグループへ分割する仕方の数を数えます。閉形式は、それらのグループ大きさの階乗の積で割ったnの階乗です。教室の古典例が定義を具体化します。
MISSISSIPPIの文字の相異なる並べ替えの数は十一の階乗を四の階乗×四の階乗×二の階乗×一の階乗で割ったものであり、五十二枚のデッキを十三枚ずつの四つのラベル付き手札へ配る仕方の数は五十二の階乗を十三の階乗の四乗で割ったものです。kが二のとき公式は二項係数C(n,n1)に帰着するため、多項係数はnからrを選ぶの厳密な一般化です。
階乗を素朴に評価すると、最終比が穏やかになる前に中間値が爆発するため、大きなnでは破綻します。そこで本ツールは連続する二項係数—C(n,n1)にC(n−n1,n2)、さらに残りのchoose—をJavaScript BigIntで掛け合わせ、中間をすべて厳密に保ち、最終件数を十進文字列として返します。
実務上のヒント、制限、関連インテント
最悪ケースの分割がWorkerとブラウザで速やかに終わるよう、nは最大一万に抑えてください。安全なNumber範囲を大きく超える競技・教育サイズは依然カバーします。nが数十万規模の多倍長係数が必要なら、専用の大きな整数スタックをオフラインで用いてください。
指導では対の例を推奨します。nが六でgroupsが二、二、二なら九十、nが五でgroupsが二、一、二なら三十、nが十でgroupsが三、三、四なら四千二百、nが五でgroupsが二、二は和がnでない硬拒否経路、負のグループ大きさは負数拒否経路を示します。
姉妹ページは通常の組合せと二項係数向けで、本ページは多項係数計算機、多項公式ツール、分割数え上げの補助を探す方向けです。
活用例
競技プログラミングと面接準備のバリデータ
分割数え上げや単語並べ替え問題の候補解を、各言語harnessで多倍長多項演算を再実装せずに検証します。
多項確率と分割表のデモ
多項確率表の構築や分割表の指導で厳密な多項係数を取得し、浮動確率の段階の前に組合せ因子を厳密に保ちます。
よくある質問
多項係数とは何ですか?
n個の相異なる要素を大きさn1…nkのk個のラベル付きグループへ分割する仕方を数えます。値はn! / (n1! × n2!× … × nk!) で、それらの大きさの和がnであることが必要です。
二項係数(nからrを選ぶ)との違いは?
二項係数はグループが二つの特別な場合で、n!/ (r! (n−r)!)です。 多項係数は三つ以上のグループ大きさを一つの係数で扱います。
件数が文字列で返される理由は?
大きな多項係数はJavaScriptの安全整数を超えます。十進文字列なら、対応するすべてのnで厳密な値を精度損失なく保てます。
グループ大きさの和がnでないとどうなりますか?
ここでの多項係数は、n1 + n2 + … + nkがちょうどnである分割にのみ定義されます。
6人を2人ずつ3つのチームに分ける方法は何通りですか?
チームに名前があって区別できる場合は90通りです。合計に6、グループの大きさに2, 2, 2を入力すると、6!を2! 2! 2!で割った値として求められます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/combo/multinomial \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":6,"groups":[2,2,2]}'const res = await fetch("https://api.kit.forhosting.com/combo/multinomial", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 6,
"groups": [
2,
2,
2
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/combo/multinomial",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 6,
"groups": [
2,
2,
2
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/combo/multinomial", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":6,"groups":[2,2,2]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":6,"groups":[2,2,2]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/combo/multinomial", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"n": 6,
"groups": [
2,
2,
2
]
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "combo.multinomial",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_n | 10000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
学生、教員、データサイエンティスト、競技プログラマは、決定的なJSON件数を得られます。計算機代数の導入も乱択も不要で、無料ブラウザツールと前払いAPI経路で同一の純粋関数を共有するため、宿題確認、パイプライン検証、面接サンドボックスが一つの再現可能な答えを共有できます。
多項係数の意味と計算方法
境界は明確です。 大きさnの単一グループは一を返し、nを分割する零または一のグループ群は期待される階乗または一を返し、グループ大きさがnに和が等しくない入力は正規化や拡張をせずinvalid_inputとして拒否します。この契約は標準的な組合せ論の教科書や競技プログラミングの判定と一致するため、小さなnでは手計算、大きなnでは既知の表と照合でき、浮動小数のずれや黙ったオーバーフローなしに数値を信頼できます。
APIの呼び出し方と応答の読み方
成功応答は、nを数値、groupsを強制された整数配列、countを厳密な多項値の十進文字列、formulaを文字列n!/(n1! n2! … nk!)として返し、クライアントは埋め込みなしに恒等式を表示・記録できます。宿題採点、競技バリデータ、面接準備サンドボックス、表計算の拡充ジョブ、確率のべきを掛ける前に係数が必要な多項確率デモ、分割表の教材、多倍長パッケージをパイプラインの全機に入れずに再現可能な多項件数を要する任意のワークフローからご利用ください。必須フィールド二つを含むJSON本体を送信してください。フィールドnは要素の総数—多項係数の上側添字—で、零から一万までの非負整数でなければなりません。同じ意味でエイリアスtotalとNも受け付けます。フィールドgroupsはnの分割を成す非負整数n1、n2、…、nkの空でない配列で、和はちょうどnに等しく、各大きさは零以上n以下の整数でなければなりません。エイリアスparts、sizes、niはgroupsに対応します。検証失敗—nまたはgroupsの欠落、配列でないgroups、非整数または負の大きさ、公開上限超過、空のgroups、和がnでないグループ—はinvalid_inputを返し、課金されません。料金は成功リクエストごとに固定の$0.002、単位はitem、限界単位価格は零です。
実務上のヒント、制限、関連インテント
この軽量parse機能は対話的確認、API接続、教室デモ向けです。連続二項公式は決定的なので、学生は小さな場合を手計算や表計算で再計算し、APIと行単位で一致させられます。多項係数をn個の相異なる要素の順列や、さらにp_iのn_i乗を掛ける多項確率質量と混同しないでください—別のインテントと別のランディングです。invalid_inputを返す失敗タスクは前払い残高を消費しないため、契約を学ぶ際の誤入力でも探索スクリプトを安価に保てます。大きな係数がJSON転送で下位桁を失わないよう、JavaScript Numberへの強制より厳密な文字列件数を優先してください。
連携の活用例
多項係数の宿題・試験採点
学生にnとグループ分割を与え、手計算した多項係数を決定的なAPIまたは無料ブラウザ結果と照合し、浮動小数の曖昧さを避けます。
技術的な質問
多項係数計算機は無料ですか?
ブラウザツールは無料でローカル実行です。API呼び出しは成功リクエストごとに$0.002の前払いKIT残高を使い、失敗タスクは課金されません。