重複なし組み合わせ計算機
異なる10個から3個を、重複なしで順序を問わずに選ぶと120通りです。全体の個数と選ぶ個数を入力すれば、非常に大きな数でも正確な件数が分かり、委員の選出やカードの手札、標本の数え上げに使えます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- N
- 10
- K
- 3
- 数量
- 120
重複なしの組み合わせは、統計と離散数学における基本的な数え上げの問いに答えます。互いに異なる n 個の要素から、同じ要素を二度選べず、選ぶ順序も問わないとき、大きさ k のグループは何通り作れるか。その量は二項係数 C(n,k) であり、n 個から k 個を選ぶとも書きます。サンプリングも通信も日付依存の丸めもなく、有効な対 (n, k) は毎回同じ整数になります。
重複なし組み合わせが数えるもの
重複なしの組み合わせは、互いに異なる n 個の要素の集まりから、各要素が高々一度しか現れず選ぶ順序も問わないとき、k 個の部分集合を何通り選べるかを数えます。教室では n 個から k 個を選ぶと言い、統計の記法では二項係数 C(n,k) です。
古典的な恒等式は、C(n,k) が n の階乗を k の階乗と (n マイナス k) の階乗で割った値に等しいと述べます。同じ量は (x プラス y) の n 乗の二項展開の係数としても、n 元集合の k 部分集合の個数としても現れます。
順序を無視するため、Alice のあと Bob を選ぶのも Bob のあと Alice を選ぶのも同じ組み合わせであり、k が二以上なら件数は対応する順列 P(n,k) より厳密に小さくなります。重複が禁じられているため同じ人を二度選べません。それが重複ありの組み合わせ(多重集合の組み合わせとも呼ばれ、件数は C(n+k−1, k))との違いです。
境界も定義の一部です。 C(n,0) と C(n,n) はともに 1、C(n,1) は n に等しく、C(0,0) は空積の規約により 1 です。k が n より大きいと n 集合の k 部分集合は存在しないため、本計算機はゼロや一般化二項係数を返す代わりにその対を拒否します。実装は標本抽出せず、時計に依存せず、丸めもしません。(
n マイナス k プラス 1) から n までの縮約積を 1 から k まで順に割り、BigInt の正確な演算で大きな係数も浮動小数の仮数を溢さず正確な整数のまま保ちます。
教室・標本抽出・競技での使い方
統計の教員は、非復元抽出を導入するときに重複なし組み合わせを使います。人数 n のクラスから k 人の異なる委員会の数、52 枚のデッキから k 枚の手札の数、超幾何の設定でロット n から不良 k 個を選ぶ場合の数です。これらはすべて同じ整数 C(n,k) を共有します。
本ページは、その言い回しを明示的に探す人、とくに重複を許す組み合わせと混同しないよう教わったばかりの学習者向けです。試験生成器は、成功経路を n が十で k が三(結果は百二十)に固定し、n を超える任意の k はゼロを返すのではなく失敗しなければならない拒否経路として固定できます。
競技プログラマーと面接サンドボックスは、言語ごとのハーネスで多倍長演算を再実装せずに組み合わせ数え上げ問題の正確なオラクルを必要とします。兄弟ランディングは順列、重複あり組み合わせ、一般的な nCr 計算機を扱うことがあります。本ランディングは重複なしという文言そのものです。
実際の部分集合が必要ならご自身の列挙コードと件数を組み合わせてください。本機能が返すのは整数の件数のみです。
活用例
委員会と非復元抽出
順序を問わず同じ人を二度選ばないとき、異なる n 人または n 個の単位から、k 人の委員会や k 個の標本を何通り作れるかを数えます。
C(n,k) の宿題と試験の確認
学生に n と k を送らせ、手計算した重複なし組み合わせの答えを決定的な件数と照合します。k が n を超えるときの硬拒否も含みます。
競技と超幾何の準備
超幾何表の作成や組み合わせ数え上げ問題の判定で正確な C(n,k) を取り、確率ステップの前に整数層を正確に保ちます。
よくある質問
重複なしの組み合わせとは何ですか?
順序を問わず、どの要素も二度選べないとき、異なる n 個から k 個を選ぶ場合の数です。その数は C(n,k) = n!/ (k! × (n−k)!)です。
k が n より大きいとどうなりますか?
重複が禁じられているとき、集まりより多くは選べないため、k は 0 ≤ k ≤ n を満たす必要があります。
重複ありの組み合わせとの違いは何ですか?
重複なしでは各要素は高々一度です(部分集合)。重複ありでは同じ要素を複数回選べ(多重集合)、件数は C(n,k) ではなく C(n+k−1, k) になります。
組み合わせ件数が文字列なのはなぜですか?
大きな C(n,k) は JavaScript の安全整数を超えます。十進文字列なら、対応するすべての n と k で各桁を正確に保てます。
組み合わせと順列は何が違いますか?
組み合わせでは選ぶ順序を問いません。アリスの次にボブを選んでも、ボブの次にアリスを選んでも同じ組です。そのため2個以上選ぶときは、組み合わせの数は順列の数より小さくなります。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/stat/combinations-without-repetition \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":10,"k":3}'const res = await fetch("https://api.kit.forhosting.com/stat/combinations-without-repetition", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 10,
"k": 3
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/combinations-without-repetition",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 10,
"k": 3
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/combinations-without-repetition", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":10,"k":3}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":10,"k":3}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/combinations-without-repetition", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"n": 10,
"k": 3
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.combinations_without_repetition",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
本計算機は対 n と k を受け取り、n の階乗を k の階乗と (n マイナス k) の階乗で割る正確な恒等式を評価し、組み合わせの件数を決定的な JSON 結果として返します。k が n より大きいときは選び方が存在しないため、ゼロや符号付きの拡張を捏造せず invalid_input で失敗します。
n と k の送り方と件数の読み方
別名 total と N も同じ意味で受け付けます。別名 r、choose、K は k に対応します。成功時の応答は数値としての n と k を返し、正確な組み合わせ値の十進文字列 count と、クライアントが表示や記録に使える恒等式 formula として C(n,k)=n!/(k!( n-k)!)必須の非負整数二つを含む JSON 本体を POST してください。フィールド n は互いに異なる集まりの大きさ — C(n,k) の上添字 — であり、ゼロから一万までの整数でなければなりません。フィールド k は、何も戻さずに選ぶ個数 — 下添字 — であり、ゼロから n までの整数です。を含めます。 検証失敗 — n または k の欠落、非整数、分数、負の値、公開上限超え、k が n より大きい — は invalid_input を返し課金されません。料金は成功リクエストあたり定額 $0.002 で、単位は item です。宿題採点、プログラミング競技のバリデータ、面接準備サンドボックス、表計算の補強ジョブ、浮動小数の確率ステップの前に C(n,k) が必要なデモからエンドポイントを利用できます。安全整数の上限を超える係数が JSON 転送で下位桁を失わないよう、JavaScript の Number に無理に押し込むより文字列の件数を優先してください。
教室・標本抽出・競技での使い方
最悪ケース C(10000,5000) でも Worker 隔離環境とブラウザで速やかに終わるよう、n は最大一万に抑えてください。それでも安全な Number 範囲を大きく超える教育・競技規模をカバーします。invalid_input を返す失敗タスクは前払い残高を消費しないため、契約を学ぶ途中で不可能な k を入力しても探索スクリプトを安く保てます。
技術的な質問
重複なし組み合わせ計算機の料金はいくらですか。
ブラウザツールは無料でローカル実行です。API 呼び出しは成功リクエストあたり $0.002 の前払い KIT 残高を使い、無効な入力は課金されません。