ポーカーのスターティングハンド組み合わせ計算
ポーカーのスターティングハンド組み合わせ計算では、一般的なプリフロップ表記を、実在する2枚組の正確な数に変換できます。AA、AKs、AKo、AKのような標準表記、またはポケットエースやスーテッドの7・6コネクターのような明確な説明を入力してください。結果には正規化したハンドクラス、組み合わせ数、計算根拠が表示され、コンボをエクイティやドロー確率と混同せずに確認できます。
無料で実行
スターティングハンドの組み合わせとは
スターティングハンドのクラスは、具体的な複数の2枚組をまとめた呼び名です。たとえばポケットエースは物理的な1通りのハンドではなく、4つのスートから6通りの組を作れます。この具体的な組をコンビネーション、またはコンボと呼びます。本計算では、コミュニティカードが配られる前、かつ既知のカードがデッキから除かれていない状態を数えます。ペアはAAのように入力してください。異なる2ランクでは、末尾のsがスーテッド、oがオフスートを示し、末尾がなければ両方を含みます。逆順のKAsはAKsに正規化され、計算式も示されます。ここで求めるのは、指定クラスに属する物理的な初手の数です。勝率、相手レンジに対するエクイティ、ポットオッズ、フロップ後の改善確率は算出しません。これらを分けて扱うことで、ポーカー学習で起こりやすい概念上の混同を避けられます。
正確な数が6、4、12、16になる理由
各ランクには4枚のカードがあり、スートはそれぞれ異なります。ポケットペアでは、同じランクの4枚から2枚を選びます。順序を区別しない選択はC(4,2)で、結果は6です。異なる2ランクのスーテッドでは、共通のスートを4種類から選ぶため4通りです。オフスートでは、各ランクから1枚ずつ選ぶと最初は16通りになります。そのうち同じスートの4通りを除くため、12通りが残ります。スートを限定しない場合は16通りすべてで、内訳はスーテッド4通りとオフスート12通りです。ランクが連続しているかどうかで規則は変わりません。そのため、スーテッドの7・6コネクターはスーテッドのエース・キングと同じ4通りで、スート指定なしの7・6は16通りです。コネクターという語はランク構造と戦略的性質を示しますが、スートの数え方を変えるものではありません。固定された組み合わせ構造により、結果は常に正確です。
レンジ分析でコンボ数を使う方法
組み合わせ数はプリフロップレンジ内の重みを示します。AAとAKsを含むレンジは、カード除去前なら10コンボです。内訳はペアの6とスーテッドの4で、AKoを加えるとさらに12増えます。したがって、ハンド表記の一覧で各項目の頻度が同じになるわけではありません。ペアではないオフスートは、ポケットペアの2倍、そのスーテッド版の3倍の物理的なハンドを表します。レンジ表の監査、戦略的クラスから数量への変換、教材の確認にご利用ください。回答は、既知のホールカードやボードカードがない完全な52枚デッキを前提とします。カードが見えている場合はブロッカーによって利用可能なコンボが減るため、除外されたカードを正確に指定する必要があります。本機能は文脈からブロッカーを推測しません。AKのように末尾がない非ペアは16通り全体として扱います。片方のスート区分だけが必要な場合はAKsまたはAKoをご指定ください。
活用例
プリフロップレンジの監査
レンジ表の各クラスを物理的なハンドの正確な数に変換し、合計を確認できます。
ポーカー教材の確認
ペア、スーテッド、オフスートの重みが異なる理由を例に沿って確認できます。
学習ノートの作成
各スターティングハンド区分に、正規化表記と簡潔な計算説明を付けられます。
よくある質問
ポケットペアは何通りありますか?
同じランクの4枚から2枚を選ぶため、どのポケットペアも6通りです。
ペアではないスーテッドは何通りですか?
2ランクが共有する各スートにつき1通りなので、合計4通りです。
ペアではないオフスートは何通りですか?
2ランクを選ぶ16通りから同じスートの4通りを除き、12通りです。
末尾のないAKは何を意味しますか?
スーテッドとオフスートのエース・キングを両方含み、合計16通りです。
ブロッカーは計算に含まれますか?
いいえ。既知のカードをデッキから除く前の、完全なプリフロップクラスを数えます。
APIリクエストの料金はいくらですか?
APIリクエスト1回の料金は$0.002です。ブラウザーでは無料でも計算できます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/hobby/poker-hand-combinations \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"AKs"}'const res = await fetch("https://api.kit.forhosting.com/hobby/poker-hand-combinations", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "AKs"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/hobby/poker-hand-combinations",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "AKs"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/hobby/poker-hand-combinations", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"AKs"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"AKs"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/hobby/poker-hand-combinations", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "AKs"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "hobby.poker_hand_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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |