miyauchidp.dev

著者: miyauchi(本サイト・各ツールの開発者)

公開

レート戦とDCのポイント増減から、相手の強さを逆算する

マスターデュエルのレート戦とデュエリストカップで、自分のレートやDPの増減から対戦相手の対戦前ポイントを逆算する方法を解説します。同格±8のイロレーティングと同格±1,000DPのモデルで式と早見表を示し、推定できない場面と丸めによる誤差の大きさも整理します。

マスターデュエルのレート戦で勝ったのに、レートが少ししか増えないことがあります。 逆に、勝ったときの増加が大きければ、相手は格上だったと考えたくなります。 増減が勝敗と相手とのポイント差で決まるという前提を置けば、この感覚は計算に置き換えられ、自分の増減から相手の対戦前ポイントを逆算できます。

この記事では、レート戦とデュエリストカップ(DC)のそれぞれについて、増減の式、逆算の式、早見表を示します。 使うのは、対戦記録ツールの duel-logger が相手の推定に採用しているモデルです。 公開されている公式の計算式は、確認できていません。 このモデルは公式の式や実際の対戦記録と照合したものではないため、推定値は目安として扱ってください。

このモデルが置いている前提

レート戦は、チェスなどで使われるイロレーティングとして扱います。 イロレーティングでは、自分と相手のレートの差から「期待勝率」を求め、実際の勝敗が期待をどれだけ上回ったかに比例してレートを動かします。 このモデルでは、同格の相手との対戦で勝てば+8、負ければ−8になる設定(K=16、尺度400)を使います。

  • 期待勝率:1 ÷ (1 + 10^((相手のレート − 自分のレート) ÷ 400))
  • 1試合の増減:16 × (結果 − 期待勝率)。結果は勝ちが1、負けが0

DCのDPは、イロレーティングとは別の、次のような直線的なモデルで扱います。

  • 同格の相手との対戦で、勝てば+1,000DP、負ければ−1,000DP
  • 相手とのDP差100ごとに、増減が1DP変わる(格上に勝つと多く増え、格上に負けると少なく減る)
  • 勝利で増える量は最低1,000DPで、上限はない
  • 敗北で失う量は最大1,200DP
  • 対戦前が9,000DP以下での敗北は、減少量が軽減されるものとして推定の対象外にする(軽減の量はモデルに含めていない)

どちらのモデルでも、相手との差が同じなら、勝ったときの増加量と負けたときの減少量は自分の対戦前ポイントによらず決まります。 そのため、DPの増減が限度に達しておらず、9,000DP以下の敗北にも当たらなければ、自分の対戦前ポイントと増減の2つから相手のポイントを1つに絞り込めます。 限度に達した試合で分かることは、DCの節で扱います。

レート戦で、相手との差によって増減はどう変わるか

次の図は、相手とのレート差ごとに、勝ったときに増える量と負けたときに減る量を描いたものです。 同格(差0)ではどちらも8で、相手が格上になるほど勝ちの増加が大きく、負けの減少が小さくなります。

相手とのレート差を横軸に、勝って増える量と負けて減る量を描いた折れ線グラフ。差0ではどちらも8で、相手が400格上なら勝ちで約14.55増え、負けで約1.45減る

同格で±8のイロレーティングのモデルです。勝ちの増加と負けの減少を足すと、どの差でも16になります。

相手のレート − 自分のレート勝ったときの増減負けたときの増減
−400+1.45−14.55
−200+3.84−12.16
−100+5.76−10.24
±0+8.00−8.00
+100+10.24−5.76
+200+12.16−3.84
+400+14.55−1.45

400格上の相手に勝てば約14.55増え、400格下の相手に勝っても約1.45しか増えません。 勝ちの増加と負けの減少の合計が常に16になるのは、期待勝率と「1 − 期待勝率」を足すと1になり、その16倍だからです。 このため、勝ちで+10.00になる相手と、負けで−6.00になる相手は、同じレート差の相手だと分かります。

増減から相手のレートを逆算する式

増減の式を期待勝率について解き、さらに期待勝率の式をレート差について解くと、次の2つの式が得られます。

  • 期待勝率:結果 − 増減 ÷ 16(勝ちなら 1 − 増加量 ÷ 16、負けなら 減少量 ÷ 16)
  • 相手のレート:自分の対戦前のレート + 400 × log10((1 − 期待勝率) ÷ 期待勝率)

たとえば、1500.00から1510.00に増えた勝ちを計算します。 期待勝率は 1 − 10 ÷ 16 = 0.375 です。 相手との差は 400 × log10(0.625 ÷ 0.375) ≒ 88.74 なので、相手の対戦前レートは約1,588.74と推定できます。 1500.00から1494.00に減った負けでも、期待勝率は 6 ÷ 16 = 0.375 で同じになり、同じ約1,588.74が求まります。

増加量か減少量が16以上になると、期待勝率が0以下か1以上になり、式が成り立ちません。 このモデルでは1試合の増減が16未満に収まるため、16以上動いた記録は記録の誤りか、モデルが実際の計算と合っていないことを示します。

逆算の精度と、小数第2位の丸め

逆算の精度は、増減がどれだけ細かく分かるかで決まります。 duel-logger は画面のレートを小数第2位まで読み取って記録するので、ここでは増減も0.01刻みで分かるものとします。 次の表は、勝ったときの増加量から逆算した相手との差と、増加量が0.01大きかった場合に推定値がどれだけ動くかです。 負けたときは、増加量が「16 − 減少量」の行を見れば、同じ大きさで動くことが分かります。

勝ったときの増加量逆算した相手との差増加量が0.01大きい場合の推定の差
+0.10−880.56約16.67
+1.00−470.44約1.84
+2.00−338.04約0.99
+4.00−190.85約0.58
+8.00±0.00約0.43
+12.00+190.85約0.58
+14.00+338.04約0.99
+15.00+470.44約1.86
+15.50+596.54約3.62
+15.90+880.56約18.41

増加量が8前後の試合では、0.01の違いで推定値は0.4程度しか動きません。 一方、+0.10や+15.90の勝ちでは同じ0.01の違いで17〜18程度動き、増加量が0か16に近づくほど差は急に大きくなります。 増減が0か16に近い試合、つまり大きな格下に勝って少ししか増えなかった試合や、大きな格上に勝って大きく増えた試合ほど、推定値の小数部分には意味がありません。 レートが小数第2位で丸めて表示されている場合、対戦前と対戦後の両方に丸めが入るので、増減の誤差は最大で0.01程度になります。

DCでDPの増減に限度があると何が分からなくなるか

DPのモデルは、勝利の最低増加量と敗北の最大減少量があるため、レート戦より分かることが限られます。 次の図と表は、相手とのDP差ごとに、勝ったときに増える量と負けたときに減る量を示しています。 レート戦とDCの図の値は、増減の値のCSVで配布しています。

相手とのDP差を横軸に、勝って増える量と負けて減る量を描いた折れ線グラフ。勝ちの増加は相手が格下だと1,000で一定、格上だと差1万ごとに100ずつ増える。負けの減少は相手が2万以上格下だと1,200で一定になる

同格で±1,000DPのモデルです。格下に勝ったときと、2万DP以上格下に負けたときは、増減が限度に達して一定になります。

相手のDP − 自分のDP勝ったときの増減負けたときの増減
−30,000+1,000−1,200
−20,000+1,000−1,200
−10,000+1,000−1,100
±0+1,000−1,000
+10,000+1,100−900
+20,000+1,200−800
+50,000+1,500−500

増減が限度に達していなければ、相手のDPは次の式で逆算できます。

  • 勝ったとき:相手のDP = 自分の対戦前のDP + 100 × (増加量 − 1,000)
  • 負けたとき:相手のDP = 自分の対戦前のDP + 100 × (1,000 − 減少量)

たとえば30,000DPから31,100DPに増えた勝ちなら、30,000 + 100 × 100 = 40,000 なので、相手は約40,000DPと推定できます。 30,000DPから29,100DPに減った負けも、減少量が900なので同じ約40,000DPになります。 増減が1DP違うと推定値は100DP動くため、推定値は100DP単位の目安です。

格下に勝った試合は、相手との差によらず+1,000になるため、相手が自分と同じかそれより下だということしか分かりません。 同じように、2万DP以上格下に負けた試合は−1,200で一定になり、相手のDPは自分の対戦前のDPより2万以上低いということしか分かりません。 こうした試合では、下の計算機も duel-logger も、推定値ではなく上限だけを示します。 たとえば対戦前30,000DPで+1,000の勝ちなら、「30,100以下」と表示します。 上限に100DPを足しているのは、増減を整数にする計算で生じる誤差を1DP未満と仮定し、その分の幅を見込んでいるためです。

自分の増減から相手のポイントを計算する

この記事のモデル(レート戦は同格±8のイロレーティング、DCは同格±1,000DPで差100DPごとに1変化、勝利は最低+1,000、敗北は最大−1,200)で計算します。レートは小数第2位、DPは整数で入力します。勝ちか負けかは、対戦前と対戦後の差の符号から判定します。

対戦の種別と自分のポイント
推定した相手の対戦前ポイント
約1,588.74
「以下」は上限だけが分かる場合
相手との差
+88.74
相手 − 自分。正なら格上
今回の結果
勝ち +10.00
増減の符号から判定

種別を切り替えると、その種別の例の値が入ります。推定値はモデルに基づく目安で、公式の計算式と照合したものではありません。

推定がずれる記録の条件

逆算の式は、自分の対戦前ポイントが正しく分かっていることを前提にしています。 対戦前のポイントは直前の試合の終了時ポイントから取るので、途中の試合を記録し忘れると、その次の試合の推定は記録漏れの分だけずれます。 途中の試合を別のシートに記録した場合や、シーズンや大会が切り替わってポイントがリセットされた場合も、直前の記録との差は1試合分の増減になりません。

モデル自体が実際の計算と合っていない可能性もあります。 係数(同格で±8、差100DPごとに1)や丸めの位置が違えば、推定値は系統的にずれます。 ゲームの仕様が変わった場合も同じです。 1試合の推定値をその相手の実力と見なすより、「格上との対戦が多かった」「この帯の相手には勝てている」のように、多くの試合をまとめた傾向をつかむ用途に向いています。

duel-logger で相手の推定を記録に並べる

duel-logger では、一部のユーザーに先行公開している機能として、この記事のモデルで計算した相手の推定ポイントを記録一覧の「相手推定」の列に表示しています。 現時点では、すべてのユーザーに表示される機能ではありません。 選択したシートにレート戦かDCの記録があることが表示の条件で、同じシートと対戦種別の直前の記録の終了時ポイントを、対戦前のポイントとして使います。 推定できた試合は「約1,588.74」、上限だけ分かる試合は「30,100以下」、推定できない試合は「—」と表示します。

推定値は集計の絞り込みにも使え、相手の推定レートや推定DPの範囲を指定して、その帯の相手に対する勝率や対面を確認できます。 ただし、帯を分けると1つの条件あたりの試合数が減るため、勝率のブレ幅は大きくなります。 試合数とブレ幅の関係は、対戦記録の勝率は何戦から信用できるかで解説しています。 推定を安定させるには、シーズンや大会ごとにシートを分け、試合の終了時ポイントを続けて記録します。 記録の取り方と集計の基本は、duel-logger で対戦記録をつけて勝率を分析する方法にまとめています。

参考情報

この記事で紹介した duel-logger は無料で利用できます。機能の一覧は紹介ページをご覧ください。

記事内容に誤りを見つけた場合は お問い合わせ から報告してください。