少なくとも1回起こる確率計算
少なくとも1回起こる確率計算ツールは、各試行が独立しており、成功確率がすべて同じ場合に、事象が1回以上起こる確率を求めます。1回の試行における成功確率を0から1までの小数で入力し、続いて試行回数を指定してください。計算には余事象の法則を使います。まず成功が一度もない確率を求め、その値を1から引きます。成功が1回、2回、さらにそれ以上となる各確率を個別に足すよりも、通常はこちらの方法が簡潔で信頼できます。
無料で実行
余事象を使う方法を理解する
少なくとも1回成功する確率を直接求めようとすると、多数の結果を扱うため計算が煩雑になります。たとえば5回の試行なら、成功がちょうど1回、2回、3回、4回、5回というすべての場合が含まれます。一方、その余事象は「一度も成功しない」という1つの場合だけです。1回の成功確率をpとすると、失敗確率は1 - pです。独立した試行をn回行い、すべて失敗する確率は(1 - p)^nになります。この値を1から引いた1 - (1 - p)^nが、1回以上成功する確率です。本ツールは両方の値を返すため、関係を確認し、極端な値で通常生じる浮動小数点精度の差を除けば合計が1になることを確かめられます。成功確率が0なら、1回以上成功する確率は常に0です。成功確率が1で試行が1回以上なら確実に成功します。試行回数が0の場合、定義上成功は起こらないため、1回あたりの確率にかかわらず、少なくとも1回成功する確率は0です。
確率と試行回数を正しく入力する
確率は0以上1以下の小数で入力してください。たとえば各試行の成功率が二十五パーセントなら0.25と入力します。25は許容範囲外なので入力しないでください。試行回数は0以上の整数である必要があり、0も指定できます。独立性は重要な前提です。ある試行の結果が別の試行の確率を変えてはならず、すべての試行で同じ成功確率が適用されなければなりません。公平なサイコロを繰り返し振る場合や、元に戻してから再び抽選する場合は代表的な例です。カードを戻さずに引くと山札の内容が毎回変わるため、試行は独立ではなく、この式では正しく表せません。同様に、天候、在庫、疲労、システム負荷などが変化する状況での試行は、それぞれ異なる確率を持つ可能性があります。その場合は、試行ごとの確率を指定できるモデルをご利用ください。本ツールは数値の範囲を検証しますが、実際の試行が独立かどうかを数値だけで判定することはできません。この前提をご確認のうえ結果を解釈してください。
結果を解釈して活用する
主な結果は0から1までの小数の確率です。レポートやダッシュボードで百分率を使う場合は100を掛けてください。同時に返される成功が一度もない確率は検算に役立ち、冗長化された構成要素がすべて応答しない可能性など、それ自体が注目すべき運用リスクになる場合もあります。1回あたりの成功確率が0より大きければ、試行回数を増やすほど少なくとも1回成功する確率は高くなります。ただし、すべての試行が成功する保証や、期待される成功回数を示すものではありません。この式が答えるのは、成功回数が1回以上かどうかだけです。計画時には1回の確率を固定して試行回数の候補を比較するか、回数を固定して1回の確率を高める対策を比較してください。事象がまれな場合や試行回数が多い場合、計算前に入力を丸めると、pのわずかな差が合成確率を大きく変えることがあります。実装では対数を用いた余事象計算により、小さな確率と多数の試行でも有効な精度を保ちます。ブラウザーでは無料で利用でき、APIによる自動処理は1リクエストあたり$0.002です。
活用例
検出範囲を見積もる
各試行の検出確率が同じ場合に、独立したセンサーまたは反復検査の少なくとも1つが事象を検出する確率を求めます。
複数回の働きかけを計画する
応答確率が一定で試行同士が影響しない場合に、独立した複数の試行から少なくとも1回応答を得る確率を見積もります。
信頼性を評価する
同じ成功確率を持つ独立した冗長構成要素のうち、少なくとも1つが動作する確率を計算します。
よくある質問
どの式を使用しますか?
1 - (1 - p)^nを使用します。pは1回の試行における成功確率、nは独立した試行の回数です。
20のような百分率を入力できますか?
いいえ。確率は0から1までの小数で入力してください。二十パーセントなら0.2です。範囲外の値は入力エラーになります。
試行が独立している必要があるのはなぜですか?
独立していれば、成功がない確率を掛け合わせられます。ある結果が後の確率を変える場合、この式はその実験を表しません。
試行回数が0の場合はどうなりますか?
試行がなければ成功も起こらないため、少なくとも1回成功する確率は0、成功がない確率は1です。
結果は期待成功回数を示しますか?
いいえ。成功回数が1以上となる確率を示します。このモデルの期待成功回数はnとpの積です。
APIの利用料金はいくらですか?
APIは1リクエストあたり$0.002です。同じ決定論的な計算をブラウザーでは無料で利用できます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/stat/at-least-one \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"probability":0.2,"trials":5}'const res = await fetch("https://api.kit.forhosting.com/stat/at-least-one", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"probability": 0.2,
"trials": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/at-least-one",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"probability": 0.2,
"trials": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/at-least-one", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"probability":0.2,"trials":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"probability":0.2,"trials":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/at-least-one", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"probability": 0.2,
"trials": 5
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.at_least_one",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_trials | 1000000000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |