ウマ・オカの基礎
麻雀リーグ戦のポイント計算には「ウマ」と「オカ」という2つの要素が登場します。この2つの違いを理解するだけで、計算の全体像がグッとわかりやすくなります。
ウマ(順位点)とは
ウマとは、その半荘の 順位に応じて加減される固定ポイント のことです。代表的な「ウマ10-30」では次のように配分します。
- 1位:+30ポイント
- 2位:+10ポイント
- 3位:-10ポイント
- 4位:-30ポイント
全員のウマを合計するとちょうど 0 になります(+30+10−10−30=0)。これはリーグ全体での「ポイントの総量は変わらない」というゼロサム原則の中核です。ウマの数字は「上位と下位の差をどれだけ大きくするか」を決める重要なパラメータで、シーズン開始前にメンバーで合意しておきます。
オカ(トップ賞)とは
オカとは、 配給原点(スタート時の持ち点)と返し点の差から生じるボーナスポイント です。よく使われる「25000点持ち30000点返し」の場合、4人の原点合計は100000点なのに返し合計は120000点になります。この差額20000点を「オカ」と呼び、トッププレイヤーが丸ごと受け取ります。
素点(最終持ち点)をそのまま1000で割って返し点を引いただけでは全員の合計がゼロにならず、オカの分だけ「浮いた」状態になります。トップの素点換算値にオカを加えることで、はじめてゼロサムが成立します。
なお、原点と返し点が等しい(たとえば「30000点持ち30000点返し」)ルールではオカは発生しません。
端数処理・五捨六入
素点は通常、百の位以下をどう処理するかで最終ポイントが変わります。リーグ戦で最もよく使われる端数処理が 「五捨六入」 です。
五捨六入の規則は次のとおりです。
- 百の位が 600 以上 → 1000点単位で切り上げ
- 百の位が 500 以下 → 1000点単位で切り捨て(500点ちょうども切り捨て)
たとえば 32600点なら → 33000点(切り上げ)、42500点なら → 42000点(切り捨て)です。一般的な四捨五入と異なり「500点ちょうどは切り捨て」になる点が特徴で、これが「五捨」という名前の由来です。
端数処理後の4人の素点を合計したとき、配給原点×4と一致するかが最初の検算ポイントです。一致しない場合は誰かの入力を間違えています。五捨六入を統一していても、端数が不均一になる場合は「3人の処理後の合計から4人目の素点を逆算して求める」方法でズレをなくすこともあります。
なお、リーグによっては五捨六入を使わず「100点単位で計算」「端数切り捨て」を採用する場合もあります。重要なのは シーズン通じて一貫した処理方法を使う ことです。
リーグptへの換算式
端数処理が済んだら、素点をポイントに変換します。基本の換算式は次の通りです。
ポイント = (素点 − 返し点)÷ 1000 + ウマ(+ オカ:トップのみ)
この式を分解して理解しましょう。
- 素点 − 返し点 返し点を基準(0点)にしたとき、何点プラスまたはマイナスかを表します。
- ÷ 1000 点数を1000点単位(1ポイント)に変換します。端数処理済みなので割り切れます。
- + ウマ 順位ボーナス/ペナルティを加えます。
- + オカ(トップのみ) 配給原点と返し点の差に人数を掛けた値です。25000点持ち30000点返し・4人なら(30000−25000)×4÷1000 = +20ポイントをトップに加算します。
オカをウマに含めて表現するリーグもあります(「ウマ込みのトップ賞」としてトップのウマを大きく設定する方式)。どちらの表現でも最終的な数字は同じですが、計算書に明記しておくと混乱を防げます。
具体的な計算例(4人分)
ここでは次のルール設定で、4人分のポイントを実際に計算します。
- 配給原点:25000点持ち
- 返し点:30000点
- ウマ:10-30(1位+30 / 2位+10 / 3位−10 / 4位−30)
- 端数処理:五捨六入
対局後の最終持ち点が次のとおりだったとします。
- Aさん(1位):45600点
- Bさん(2位):34500点
- Cさん(3位):22400点
- Dさん(4位):17500点
まず合計を確認します。45600+34500+22400+17500 = 120000 = 25000×4+オカ20000。OK です。
ステップ①:五捨六入
- Aさん 45600 → 46000(600 ≥ 600 で切り上げ)
- Bさん 34500 → 34000(500 ≤ 500 で切り捨て)
- Cさん 22400 → 22000(400 ≤ 500 で切り捨て)
- Dさん 17500 → 17000(500 ≤ 500 で切り捨て)
五捨六入後の合計:46000+34000+22000+17000 = 119000。配給原点合計(100000)に対してオカ(20000)が抜けて1000点差が出ていますが、これは五捨六入の端数誤差(∑端数 = −1000)のためです。この1000点はDさんの最終素点から差し引くことで帳尻を合わせる処理をするリーグもあれば、無視してそのまま計算するリーグもあります。処理方法を事前に決めておきましょう。
ここでは端数誤差はそのまま計算を進めます。
ステップ②:素点換算(返し点を引いて÷1000)
- Aさん (46000−30000)÷1000 = +16.0
- Bさん (34000−30000)÷1000 = +4.0
- Cさん (22000−30000)÷1000 = −8.0
- Dさん (17000−30000)÷1000 = −13.0
ステップ③:ウマを加算
- Aさん +16.0 + 30 = +46.0
- Bさん +4.0 + 10 = +14.0
- Cさん −8.0 − 10 = −18.0
- Dさん −13.0 − 30 = −43.0
ステップ④:オカをトップに加算
オカ = (返し点 − 配給原点)× 人数 ÷ 1000 = (30000−25000)×4÷1000 = +20.0
- Aさん +46.0 + 20.0 = +66.0
- Bさん +14.0
- Cさん −18.0
- Dさん −43.0
検算:合計がゼロか確認
+66.0 + 14.0 − 18.0 − 43.0 = +19.0
ゼロになりません。これは先ほどの五捨六入の端数誤差(−1000点 = −1.0ポイント)が残っているためです。端数誤差を含めた場合、厳密なゼロサムにはわずかにズレが生じることがあります。多くのリーグでは「端数誤差はトップが吸収する」または「Dさんの素点から差し引く」などのルールを定めています。Janrecoのような成績管理アプリを使えば、こうした端数処理も設定で自動化できます。
ポイント計算は一見複雑に見えますが、「素点→端数処理→素点換算→ウマ→オカ」という手順を身につければ誰でも追えます。リーグ運営では Janreco のようなアプリを使ってこの計算を自動化することで、集計ミスや検算の手間から解放されます。