サイコロの合計確率:s面サイコロk個のすべての合計値
6面のサイコロ2個では、合計7は36通り中6通りで確率1/6、2と12はそれぞれ1/36しかありません。サイコロの数と面の数を入れるだけで、すべての合計についてこの正確な表が得られます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- K
- 2
- S
- 6
- 総結果数
- 36
- 最小合計
- 2
- 最大合計
- 12
- 平均
- 7
公正なサイコロを複数個振って合計に注目すると、考えられる合計値ごとに固有の厳密な確率があります。通常の6面サイコロ2個では、7は2や12より出やすく、3個になると質量は再び中央へ移り、特殊な多面体サイコロでは範囲がまったく変わります。この計算ツールはサイコロの個数kと各サイコロの面数sを受け取り、母関数 (x + x² + … + x^s)^k を決定的な整数演算で展開し、完全な確率質量関数を返します。つまり、kからk·sまで到達可能なすべての合計について、組み合わせ数・約分済み分数・小数の確率です。kが1未満、sが2未満の値は明確なバリデーションエラーで拒否されるため、不備のあるゲームルールが無言のまま意味不明な表を生み出すことはありません。
サイコロの合計確率の意味と、母関数が役立つ理由
公正なs面サイコロ1個は、1からsまでの各面を等しい確率1/sで示します。独立なコピーをk個振って面を合計すると、標本空間には等確率の結果がs^k通りあります。合計は絶対最小値k(すべてのサイコロが1)から絶対最大値k·s(すべてのサイコロが最大面)まで動きます。
中間の合計は等確率ではありません。多くの異なる面の組み合わせが同じ中央の合計を生む一方、両端の合計にはわずかなミクロ状態しかないからです。こうした組み合わせを数える古典的な道具が、指数が合計を追跡し係数が組み合わせ数を数える母関数です。
サイコロ1個は多項式 x + x² + … + x^s を寄与します。独立なサイコロk個を振ることはこの多項式をk回掛け合わせることに相当し、(x + x² + … + x^s)^k における x^t の係数は、面の合計がtになる順序付き結果の個数そのものです。その係数をs^kで割れば、合計tの厳密な確率が得られます。
これはテーブルトークRPGのダイステーブル、ボードゲームのバランス表、離散確率の入門講座の背景にあるのと同じ考え方です。また完全に決定的でもあります。同じkとsを与えれば、正しい実装は必ず同じ組み合わせ数・同じ分数・同じ順序の合計リストを出力するため、Monte Carloノイズなしにテストや教材に固定しておくのに安全な分布です。
この計算ツールが母関数を展開する仕組み
この機能は2つの必須整数で呼び出します。サイコロの個数kと、各サイコロの面数sです。エンジンは、kが1から40までの整数、sが2から100までの整数であることを検証します。
検証後、コアは0個のサイコロに対する自明な母関数(合計0で係数1)から始め、現在の係数配列を長さsの面ベクトルと畳み込むことで、サイコロを1個ずつ折り込みます。各畳み込みは厳密なBigInt演算なので、大きな組み合わせ数が早々と丸められることはありません。
k個すべてを折り込むと、エンジンは合計kから合計k·sまでの係数を読み取り、合計がs^kになることを確認し、各「組み合わせ数/総数」の分数を最大公約数のステップで約分し、表示用に安定した浮動小数点確率を出力します。ネットワークの往復も乱数生成器もなく、言語モデルの関与も一切ありません。
活用例
テーブルトーク・ボードゲームのバランス調整
デザイナーが、d6、d20、カスタム面でのダメージ合計・技能判定・複数ダイスプールの厳密な確率を、何千回ものシミュレーションを回さずに計算します。
宿題と離散確率の実習
学生と採点者が、s面サイコロk個の完全な合計分布(組み合わせ数と約分済み分数を含む)を、手計算の母関数演習と照合して検証します。
テストとツールのための決定的オラクル
面接プラットフォーム、ルールエンジン、CIスイートが、kが1未満またはsが2未満を拒否し、同一入力に対して同一のPMFを返す安定したオラクルを呼び出します。
よくある質問
各サイコロ合計の確率はどう取得しますか?
応答には、到達可能な各合計について組み合わせ数・約分済み分数・確率が一覧で含まれます。
kが1未満、sが2未満の場合はどうなりますか?
少なくとも1個のサイコロと少なくとも2つの面が必要です。0、負の値、1面しかないサイコロは拒否され、課金されません。
どの面の番号付けを想定していますか?
各サイコロは1からsまで(両端を含む)の面を示す想定です。これは多くの確率の教科書やテーブルゲームで使われる標準的な公正多面体モデルです。
サイコロ合計確率の計算ツールは無料ですか?
ブラウザツールはお使いのデバイス上で無料で動作します。バリデーション失敗は課金されません。
シミュレーションではなく母関数を使う理由は?
母関数の畳み込みはすべての結果を厳密に数えるため、中央や稀な合計も近似ではなく正確です。同じ(k, s)には常に同じ表が返り、Monte Carloノイズはありません。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/prob/dice-sum \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"k":2,"s":6}'const res = await fetch("https://api.kit.forhosting.com/prob/dice-sum", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"k": 2,
"s": 6
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/prob/dice-sum",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"k": 2,
"s": 6
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/prob/dice-sum", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"k":2,"s":6}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"k":2,"s":6}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/prob/dice-sum", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"k": 2,
"s": 6
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "prob.dice_sum",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_k | 40 |
max_s | 100 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
この計算ツールが母関数を展開する仕組み
フィールドの欠落、非整数、kが1未満、sが2未満、公開された上限を超える値は、いずれもinvalid_inputで失敗し、課金されません。応答には total_outcomes、min_sum、max_sum、そして完全な表との簡単な健全性チェックのための理論平均 k·(s+1)/2 も含まれます。
実用面、制限、料金、提供形態
ボードゲームの設計中、宿題の答え合わせ中、あるいは計算代数パッケージをインストールせずに「なぜ7が2個のサイコロで最も出やすい合計なのか」を説明したいときなど、即座に厳密な分布が欲しい場合はブラウザツールをご利用ください。受け付ける範囲はWorkerアイソレート向けに動的計画法を抑制しており、最大40個のサイコロと100面でも迅速に完了しつつ、d4、d6、d8、d10、d12、d20といった一般的な多面体セット(複数ダイスのプールを含む)をカバーします。言語モデルも外部確率サービスも乱数性もないため、この機能は継続的インテグレーションのチェックや再現可能な教材に固定しても安全です。スクリプト、ルールエンジン、面接対策プラットフォーム、教育サイトが、1つの契約のもとで多数の(k, s)ペアに対して安定したJSONを必要とする場合はAPIをご利用ください。成功した各リクエストは$0.002の課金対象1件で、バリデーション失敗は残高を消費しません。結果は完全に決定的で、同じkとsは常に同じtotal_outcomes、同じ順序の分布、同じ約分済み分数を返します。テーブルトークの設計ツール、確率チュートリアル、コーディング面接のサンドボックス、ゲームバランスのパイプラインなど、近似シミュレーションのヒストグラム(なかなか収束しないもの)より厳密な母関数の数え上げを好む場面に、このエンドポイントを組み込んでください。