ビンゴカード組み合わせ計算機
中央がフリーの定番75ボールビンゴでは、異なるカードが552446474061128648601600000通りあります。列ごとの数字の範囲とマス数を入れれば、カードの束を用意したり重複がないことを確かめたりできます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 数の集合
- 15, 15, 15, 15, 15
- マス
- 5, 5, 4, 5, 5
- 列
- 5
- 列ごとの数
- 360,360, 360,360, 32,760, 360,360, 360,360
- カードの総数
- 552446474061128648601600000
ビンゴカードの組み合わせは、一見単純な問いに答えます。各列の数字プールにいくつあり、その列が埋めるマスがいくつなら、物理的に区別できるカードは何枚あるか。イベント主催者、アプリ開発者、教員はこの数を使い、デッキ規模の見積もり、一意性の保証、中央フリーの五×五と独自グリッドの比較を行います。本計算機は列ごとの独立な選択を掛け合わせます。既定では行の順序を考慮した配置 P(n,k)、数字の集合だけが重要なときは順序なしの C(n,k) です。積が JavaScript の安全な整数範囲を超える場合は、安全な整数または完全な十進文字列として厳密な総数を返します。定番の米国七十五球ビンゴがすぐ使える例です。各十五個の五列、五行、N の中央フリーでその列は四個、各列内の順序も効き、よく知られた天文学的な枚数になります。
列プールがカード総数になる仕組み
ビンゴカードは、互いに素な数字範囲から列が数字を取るグリッドです。標準の七十五球では、B 列は一から十五、I は十六から三十、N は三十一から四十五、G は四十六から六十、O は六十一から七十五だけが表示されます。各範囲は大きさ十五のプールです。
フリーなしの五行カードなら各プールから五個置きますが、よくある中央フリーのハウスルールでは N の中央マスが空のままになり、その列は四個だけになります。印刷カードの行は順序付きなので、同じ五個の B 数字でも縦の並びが違えば別カードです。そのため既定モードは順列を掛けます。
プール n、埋めるマス k の列の寄与は P(n,k)=n の階乗/(n−k) の階乗で、n×(n−1)×…×(n−k+1) の下降積として計算します。列は独立なので、カード総数はその寄与の積です。現れる数字だけが重要で行順が不要なときは ordered を false にし、各列は二項係数 C(n,k) を寄与します。
活用例
印刷部数とデッキ規模の見積もり
実物カードを発注する前に、プールと中央フリー配置の理論総数を計算し、印刷デッキが異なるカードの安全な部分集合になるようにします。
ビンゴアプリのデッキ生成
モバイルやブラウザのビンゴデッキに一意カードの厳密な上限を与えて種まきし、UI が列の行順を入れ替えるときは ordered あり/なしを比較します。
授業での組合せデモ
同じ五列ビンゴの pools 上で P(n,k) と C(n,k) を示し、中央フリーと行の順序が積をどう変えるかを学習者に見せます。
よくある質問
ordered を false にするのはいつですか?
同じ列内で同じ数字でも行順が違うカードを一枚と数えるときは ordered を false にします。その場合は順列 P(n,k) ではなく二項係数 C(n,k) を掛けます。
ある列で cells が pool を超えたら?
プールの相異なる数字より多くの埋めるマスは置けません。無効入力は課金されません。
75ボールビンゴのカードは何種類ありますか?
中央がフリーなら552446474061128648601600000通りです。各列は15個の数字から選ばれ、列の中の並び順も区別されます。
フリーマスがあるとカードの数はなぜ変わりますか?
N列が5マスではなく4マスしか埋めないからです。並べ方はほかの列の11分の1になり、カード全体の数も同じ割合で少なくなります。
独自のマス目のカードも数えられますか?
数えられます。左の列から順に、使える数字の個数と埋めるマスの数を入れてください。5×5の定番カードと自作のマス目を比べられます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/hobby/game-bingo-combinations \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pools":[15,15,15,15,15],"cells":[5,5,4,5,5]}'const res = await fetch("https://api.kit.forhosting.com/hobby/game-bingo-combinations", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pools": [
15,
15,
15,
15,
15
],
"cells": [
5,
5,
4,
5,
5
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/hobby/game-bingo-combinations",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pools": [
15,
15,
15,
15,
15
],
"cells": [
5,
5,
4,
5,
5
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/hobby/game-bingo-combinations", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"pools":[15,15,15,15,15],"cells":[5,5,4,5,5]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pools":[15,15,15,15,15],"cells":[5,5,4,5,5]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/hobby/game-bingo-combinations", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"pools": [
15,
15,
15,
15,
15
],
"cells": [
5,
5,
4,
5,
5
]
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "hobby.game_bingo_combinations",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
列プールがカード総数になる仕組み
いずれの場合もエンドポイントは列ごとの件数と総積を返すので、中間因子を表計算や教科書の恒等式と照合できます。
入力契約、応答フィールド、検証
任意の ordered は既定 true で、順列ではなく組み合わせを掛けるときは false を渡します。各要素は公開された列数・プール上限内の非負整数でなければなりません。等長の必須配列を二つ持つ JSON 本体を POST します。pools は左から右へ各列が使える数字集合の大きさ、cells はその列が実際に埋めるマス数です。中央フリーの米国ビンゴでは pools が十五が五つ、cells が五・五・四・五・五です。配列は column_pools、ranges、column_cells、picks などの別名でも送れます。空配列、長さ不一致、小数、cells が pool を超える列は invalid_input で失敗し、課金されません。成功時は pools・cells・ordered をエコーし、共有長を columns として報告し、個別の P または C を column_counts(安全に収まるときは数、そうでなければ十進文字列)として列挙し、同じ数または文字列形式で total_cards に積を与え、表示用に P(n,k) または C(n,k) を乗算記号でつないだ formula 文字列を含めます。七十五球フリー中央の総数のような大きな積は仮数五十三ビットを超えるため、在庫計算で厳密値が必要なクライアントは total_cards を数または文字列として扱い、安全でない浮動小数点変換で無理に数値化してはいけません。
ビンゴカードの組合せが役立つ場面
ホール運営者やチャリティーの主催者は印刷前にビンゴカード組み合わせ計算機を使い、依頼されたデッキ枚数が理論空間のごく一部か、素朴な乱数生成で衝突リスクに近いかを見極めます。モバイルやパーティー向けビンゴアプリは組合せ空間から非復元抽出でオフラインにデッキを種まきし、授業の組合せノートと一致するオラクルを必要とし、近似的なモンテカルロ推定では足りません。検証失敗は残高を消費しません。順列と組合せを教える教員は、同じ pools 配列上で順序付き列埋めと順序なし集合選択を対比し、ordered を切り替えて中央フリーと全マス配置で積がどう変わるかを示します。三×三の子ども用、九十球英国式を列プールに落としたもの、範囲が不均一なテーマデッキなど、カスタム変種は七十五球の伝説を固定コードせず、任意の pools と cells に素直に写せます。
技術的な質問
米国七十五球ビンゴの異なるカードは何枚ですか?
pools [15,15,15,15,15]、cells [5,5,4,5,5](中央フリー)、ordered true のとき、総数は P(15,5)^4 × P(15,4) = 552446474061128648601600000 枚です。
pools と cells の意味は?
pools[i] は列 i が使える数字の個数、cells[i] はその列が埋めるマス数です。長さは一致必須です。中央フリーの N は中央列で cells 4 です。
ビンゴカード組み合わせ計算機の料金は?
ブラウザツールは無料です。API リクエストは成功呼び出しごとに前払い KIT 残高から $0.002 です。検証失敗は課金されません。