ヤマカサのプログラミング勉強日記

プログラミングに関する日記とどうでもよい雑記からなるブログです。

Mリーグの成績からレートを計算する

Mリーグ

m-league.jp

最近というか去年の後半くらいからMリーグを見るようになり、何か記事のネタになるようなことをやりたかったので、試合結果からレーティングを出してみました。

レート

計算式

二人ゲームであればイローレーティングというものがありますが、適切な計算方法を思いつかなかったので、セガのMJのものを利用します。

R(レーティング)|ゲームシステム|セガNET麻雀【MJ ARCADE】

レートの変動値を  d とし、卓内の平均値レートを  \mu、自分のレートを  r 、得点を  p とすると、

 d = 0.24(p + 0.025(\mu - r))

となります。したがって、更新後のレートは、 r + d となります。

卓内平均のレートが自分のレートよりも高ければ、勝った時にレートが増加しやすくなり、負けてもレートの減少は小さくなります。また、 0.24 0.025 などの係数はレートの変化する割合や卓内レートを重視するかどうかで変更の余地があります。

また、レートはポイントと同じようにゼロサムです。平均レートは  1500 となっています。

チームのレート

順位 チーム名 レート ポイント
1 サクラナイツ 1548 222.5
2 風林火山 1513 73.5
3 ABEMAS 1512 45.7
4 ドリブンズ 1500 -28.4
5 格闘倶楽部 1498 -24.6
6 雷電 1489 -40.0
7 フェニックス 1475 -99.1
8 Pirates 1465 -149.6

選手のレート

順位 選手名 レート ポイント
1 沢崎 1563 275.3
2 瀬戸熊 1544 186.0
3 白鳥 1538 161.4
4 前原 1537 157.0
5 近藤 1529 124.6
6 勝又 1520 86.9
7 多井 1518 77.9
8 村上 1517 68.8
9 石橋 1513 56.6
10 魚谷 1512 50.8
11 日向 1510 42.5
12 滝沢 1506 30.6
13 高宮 1504 18.1
14 小林 1501 7.9
15 瑞原 1497 -10.3
16 園田 1497 -18.9
17 内川 1495 -21.0
18 丸山 1493 -29.5
19 岡田 1493 -31.8
20 鈴木 1490 -48.8
21 二階堂 1490 -44.0
22 茅森 1489 -48.4
23 佐々木 1487 -62.0
24 萩原 1486 -59.1
25 藤崎 1467 -137.7
26 黒沢 1460 -166.9
27 朝倉 1452 -203.8
28 和久津 1447 -226.1
29 松本 1445 -236.1

レートとポイント

ポイントは絶対的な指標ですがレートは相対的な指標なので、ポイントが上でもレートでは逆になっている箇所があります。

感想

計算のために久しぶりに Java を使いました。まあ、計算は四則演算だけなので大したことはしていませんが、データを集めるのに苦労しました。本当はクローリングして集めようかと思ったんですが、手作業でやる方が早いですね。

次にやるとしたら、選手間同士の相性とかですかね。まあ、試行回数があまりないので面白いデータにはならなそうですが。