コイン投げの確率
公平なコインを10回投げてちょうど5回表が出る確率は0.24609375です。1024通りの並びのうち252通りが表5回だからです。投げる回数、表の回数、偏ったコインなら表の確率を入れるだけで計算できます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- N
- 10
- 表の正確な回数
- 5
- 電力(W)
- 0.5
- 確率
- 0.24609375
- 二項係数
- 252
コイン投げは、独立なベルヌーイ試行の典型的な教材モデルです。各投げは確率pで表、確率1−pで裏となり、それまでの結果の並びは次の投げの確率を変えません。n回の投げでちょうどk回表が出る確率を求めたい場合、正しい閉形式は二項確率質量関数で、k回表を含む列の個数に、それらの各列の確率を掛けたものです。この機能は、投げる回数n、表の正確な回数k、オプションの偏りp(省略時は公平なコインとして2分の1)を受け取り、確率、正確な二項係数の十進文字列、短い式の文字列、公平なコインを示すフラグを返します。負のkやnを超えるkは、暗黙のゼロや誤解を招く答えではなく、明確なバリデーションエラーで拒否されます。
コイン投げの二項確率の仕組み
各投げを、成功確率p(1回の投げで表が出る確率)を持つ独立なベルヌイ試行としてモデル化します。独立にn回投げたとき、表の回数Xはパラメータnとpの二項分布に従います。ちょうどk回表が出る確率は、C(n, k)×pのk乗×(1−p)の(n−k)乗です。
ここでC(n, k)は、長さnの相異なる列のうちちょうどk回表を含むものの個数を数える二項係数です。公平なコインではpが2分の1なので、長さnの特定の列の確率は2の−n乗となり、式はC(n, k)÷2のn乗に簡略化されます。
代表的な確認例としては、公平な1回の投げで表が1回なら確率は2分の1、公平な10回の投げで表が5回ならC(10, 5)÷1024、すなわち252÷1024で約0.246、偏ったコインでpが0.7のとき5回中3回表ならC(5, 3)×0.7の3乗×0.3の2乗が挙げられます。正確さのためには端点ケースも重要です。
pが0ならkが0の場合のみ確率が1で、正のkはすべて確率0、pが1ならkがnの場合のみ成功、nが0ならkが0のみ可能です。この実装は、Monte Carloサンプリング、乱数シード、時刻、ネットワーク参照を一切使わず、BigInt演算で正確な二項係数を計算し、確率は対数空間で評価するため、大きなnでも中間の積が数値的に安定します。
公開されている範囲ではnを0から1000までとし、0≦k≦nかつpは閉区間の単位区間内を要求します。これは教科書、コンテスト、パイプラインのフィクスチャに十分で、無料枠のレイテンシも予測可能に保ちます。
コイン投げの二項確率が実務で登場する場面
統計学入門や離散数学の授業では、公平なコインの場合も、表の出る割合が2分の1でない偏ったコインの場合も、n回中ちょうどk回表が出る確率を頻繁に問われます。面接対策やプログラミングコンテストでも、ビットパターンの数え上げ、独立試行としてモデル化された成功の連続、固定のpで各単位を合格・不合格として扱う品質管理などで同じ質量関数が再利用されます。
データサイエンティストは、大標本近似にスケールする前に、小さなnで標本化した頻度を閉形式の二項確率と比較して、Monte CarloシミュレータやA/B実験の検定力の概算を検証します。教育者は、実行ごとに変わる乱数シミュレーションではなく、単一の決定的な値を必要とする解答キーや自動採点器を作成します。
ゲームデザイナーやWeb上の確率デモは、公平なコインを既定としつつ、pへのピークの依存関係を教える偏りスライダーも用意することがよくあります。累積分布P(X≦k)、逆分位点、仮定したpに対する仮説検定、投げ列の乱数生成が後で必要になった場合は、このランディングに詰め込むのではなく、別の検索意図として扱ってください。
無料枠のレイテンシを予測可能に保つためnは文書化された範囲内に収め、浮動小数点の確率は順位付けやしきい値に適し、文字列の二項係数は組合せの検証に正確なままであることを覚えておいてください。
活用例
統計の宿題と解答キー
離散数学、統計入門、自動採点のフィクスチャで、公平・偏りのあるコイン問題の正確な二項確率を計算します。
シミュレータとMonte Carloの検証
大規模なコイン投げやベルヌーイのシミュレーションを信頼する前に、小さなnでサンプリングコードを閉形式のP(X=k)と照合します。
面接・コンテスト対策
二項の数え上げ、ビットパターンの確率、独立試行の問題を練習しながら、C(n,k) p^k (1-p)^(n-k)を素早く評価します。
よくある質問
どの式を使いますか?
二項確率質量関数 P(X=k) = C(n,k) × p^k × (1-p)^(n-k) です。ここでC(n,k)はちょうどk回表を含む列の個数です。
pを省略するとどうなりますか?
pは既定で0.5になり、公平なコインを表します。偏ったコインには[0, 1]の任意のpを送信できます。
二項係数は正確ですか?
はい。 C(n,k)はBigIntで計算され十進文字列として返されるため、対応するnの範囲内で全桁が正確です。
表の出やすさが違うコインでも計算できますか?
はい、1回で表が出る確率を0から1の数で指定します。たとえば0.7なら、5回中ちょうど3回表が出る確率をC(5, 3)×0.7の3乗×0.3の2乗で求めます。
kが負の数やnより大きい場合はどうなりますか?
黙って0を返すのではなく、エラーになります。表の回数kは0からnまでの整数で、投げる回数nは0から1000までの範囲で指定してください。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/prob/coin-flip \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":10,"k":5}'const res = await fetch("https://api.kit.forhosting.com/prob/coin-flip", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 10,
"k": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/prob/coin-flip",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 10,
"k": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/prob/coin-flip", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":10,"k":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":10,"k":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/prob/coin-flip", 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": 5
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "prob.coin_flip",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
min_n | 0 |
max_n | 1000 |
min_k | 0 |
min_p | 0 |
max_p | 1 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
無料のブラウザツールと有料のAPIは同一の純粋関数を共有しているため、課題のデモと自動テストのフィクスチャが同じ入力で食い違うことはありません。
送信する内容と返ってくる内容
省略した場合、計算機はpが2分の1の公平なコインを仮定します。必須の整数nとkをフィールドnとkで指定します(nのエイリアスはflips、trials、N、kのエイリアスはheads、successes、Kです)。任意でp(エイリアスはprob_heads、probability、bias)を0から1の閉区間の数値として送信できます。必須フィールドの欠落、nまたはkの非整数、整数が必要な箇所への小数、0から1の範囲外のp、負のk、nを超えるkはすべてinvalid_inputで拒否され、課金されません。エラーメッセージは問題のフィールド名と失敗したルールを明示するため、フォームやスクリプトは推測せずにリクエストを修正できます。成功時のレスポンスには常に、正規化されたn、k、p、0から1の浮動小数点数のprobability、C(n, k)の正確な十進文字列であるbinomial_coefficient、二項積を示す短い表示文字列のformula、pがちょうど2分の1のときtrueとなるブール値のfairが含まれます。確認例として、nが10でkが5、pは既定値ならprobabilityは約0.24609375で係数は252、nが1でkが1、pが0.5ならprobabilityは0.5、nが5でkが3、pが0.7なら偏りのある二項質量、nが10でkが15ならkがnを超えるためinvalid_input、nが8でkが−1なら表の回数は負にできないためinvalid_inputとなります。成功したAPI呼び出しの料金は公開されている基本価格$0.002/件で、バリデーション失敗はプリペイド残高を消費しません。
コイン投げの二項確率が実務で登場する場面
この機能は純粋なparseエンジンなので、API料金は公開されている基本価格$0.002/成功件で、バリデーション失敗は残高を消費しません。
技術的な質問
kが負またはnより大きい場合は?
リクエストはinvalid_inputで失敗します。表の回数は負にも投げる回数の超過にもできません。
料金はいくらですか?
ブラウザツールは無料でローカルに実行されます。APIリクエストはプリペイドのKIT残高を$0.002/成功件で使用し、無効な入力は課金されません。