勝率計算
10勝4敗2分けの勝率は.688です。引き分けを0.5勝として数えるため、成績を入れるだけで順位表に載る形の勝率が分かります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 勝ち
- 10
- 負け
- 4
- 引き分け
- 2
- ゲーム数
- 16
- 勝率 (%)
- 0.688
- パーセンテージ
- 68.8
- 表示
- .688
勝率計算ツールは、チームの戦績(勝利数・敗戦数、そして競技によっては引き分け数)を受け取り、リーグの順位表で使われる標準の勝率を返します。引き分けは0.5勝として計上されるため、10勝4敗2分のシーズンは10勝4敗0分とは同じではありません。順位表でおなじみの小数点以下3桁の数値、相当するパーセンテージ、新聞に印刷される表示形式、そして使用された正確な計算式のすべてを、1回の決定的な呼び出しで受け取ることができます。
引き分けが0.5勝として計上される理由
NFL、シュートアウト導入前のNHL、一部形式のサッカーの順位表、チェス、そして無数のアマチュア競技など、多くのリーグでは試合が引き分けで終わることが認められています。引き分けを単純に無視してしまうと、10勝4敗2分のチームは10勝4敗のチームとまったく同じ評価になり、負けなかった2試合が過小評価されてしまいます。
主要リーグの順位表が長年採用してきた標準的な解決策は、各引き分けを0.5勝かつ0.5敗として数えることです。勝率計算ツールはこの慣例を正確に実装しています。実効勝利数は勝利数に引き分け数の半分を加えたもので、除数は総試合数です。
したがって10勝4敗2分のチームは(10 + 1) ÷ 16 = .688となり、.714の10勝4敗のクラブと仮定上の.656の10勝5敗1分のちょうど中間に、実際の成績が示す通りの位置に正しく収まります。結果は印刷された順位表で目にする数値であり、.643がどのリーグでもどのサイトでも同じ意味を持つよう、小数点以下3桁に丸められています。
エッジケースと計算が定義されない場合
勝率は少なくとも1試合が行われて初めて意味を持ちます。勝利なしで敗戦のあるチームは.000を、完全勝利のシーズンは1.000を、全試合引き分けのシーズンは正確に.500を返します。これは0.5勝慣例の優れた性質です。
典型的な呼び出し元は、返された数値でチームを並べ替える順位表ジェネレーター、引用された勝率を元の戦績と照合する歴史データベース、印刷用に古典的な3桁の形式を必要とするジャーナリズムツールです。計算は決定的であり、ネットワークも時計も乱数も使わないため、同じ入力は常に同じ出力を生みます。
プレーオフのシード順を決め、新聞の順位表でチーム名の下に表示される数値に求められる性質はまさにそれです。
活用例
引き分けのある競技間でのチーム比較
引き分けを0.5勝として数えることで、NFLチームの10勝4敗2分のシーズンを野球の10勝4敗と公平に評価できます。
公開前の歴史的戦績の検証
引用された勝率がデータセットの勝利数・敗戦数・引き分け数と一致するかを、記事やレポートに載せる前に確認します。
よくある質問
引き分けはどう扱われますか?
各引き分けは0.5勝かつ0.5敗として数えられます。これはリーグ順位表の標準的な慣例です。計算式は(勝利数 + 0.5 × 引き分け数)÷総試合数です。
なぜ小数点以下3桁なのですか?
順位表で長年使われてきた慣例であり、.643が曖昧さなく意味を持つためです。小数点以下1桁の相当パーセンテージも併せて返されます。
数値を文字列で渡せますか?
はい。「 10」のような数値文字列は、有限かつ非負であれば受け入れられ、変換されます。
引き分けのない競技でも使えますか?
使えます。野球やバスケットボールのように引き分けがない競技では引き分けを空欄にすれば、勝利数を試合数で割るだけの計算になります。
10勝4敗2分けの勝率はいくつですか?
.688です。10勝に引き分け2つの半分を足し、16試合で割ります。10勝4敗の.714と10勝5敗1分けの.656の間に入ります。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/sports/win-percentage-calc \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"wins":10,"losses":4}'const res = await fetch("https://api.kit.forhosting.com/sports/win-percentage-calc", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"wins": 10,
"losses": 4
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/sports/win-percentage-calc",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"wins": 10,
"losses": 4
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/sports/win-percentage-calc", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"wins":10,"losses":4}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"wins":10,"losses":4}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/sports/win-percentage-calc", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"wins": 10,
"losses": 4
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "sports.win_percentage_calc",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
数値の計算方法と丸め方
計算式は(勝利数 + 0.5 × 引き分け数)÷(勝利数 + 敗戦数 + 引き分け数)です。応答には使用された勝利数・敗戦数・引き分け数・総試合数も含まれるため、呼び出し側は計算全体を自前の記録と並べて保存し、後からどの戦績がどの数値を生んだかを監査できます。APIは順位表の慣例に従って生の結果を小数点以下3桁に丸めた値に加え、小数点以下1桁のパーセンテージとして表現した同じ数値と、スポーツ欄で見られる古典的な形式(「0.643」ではなく「.643」)の表示用文字列を返します。各カウントは有限かつ非負の数値である必要があり、負の値や欠落した値は、問題のあるフィールド名を示す型付きエラーで拒否されます。失敗したリクエストは課金されません。「10」のような数値文字列は受け入れられ変換されるため、フォーム送信やすべてがテキストとして到着するCSV駆動のパイプラインにも扱いやすいエンドポイントとなっています。
エッジケースと計算が定義されない場合
0勝0敗0分の戦績はゼロ除算になるため、答えをでっち上げるのではなく、総試合数がゼロであることを説明する型付きinvalid_inputエラーを返します。それ以外はすべて期待通りに動作します。野球やバスケットボール、現代のほとんどのホッケー形式のように引き分けのない競技では、引き分けフィールドを省略するだけで、計算式は勝利数÷試合数に単純化されます。同じコードがこのページのブラウザで無料で実行されるため、APIを順位表パイプラインに組み込む前に、戦績を入力して確認できます。
連携の活用例
リーグ順位表の生成
各チームの戦績をエンドポイントに送信し、返された小数点以下3桁の数値で並べ替えます。公式順位表とまったく同じ方法です。
技術的な質問
料金はいくらですか?
1リクエストにつき$0.002です。このページのブラウザでも無料で実行できます。
引き分けのない競技の場合は?
引き分けフィールドを省略してください。デフォルトはゼロで、計算式は勝利数÷試合数に単純化されます。
0勝0敗0分の戦績の場合はどうなりますか?
試合が行われていない場合、勝率は定義されないため、リクエストはinvalid_inputエラーで拒否されます。失敗したリクエストは課金されません。