予期せぬ連敗でレートが溶けても気にしなくていいかもしれない話

予期せぬ連敗でレートが溶けても気にしなくていいかもしれない話

はじめに

Twitterのフォロワーにオセロ競技者が多いのでオセクエ1 廃人のツイートをよく見かけます🕊
上下するレーティングに一喜一憂したり、連敗でレートが溶けることにストレスを感じている方が多いように感じます🥺🐘

『気にしなくていいんですよ。意外と知られていない。』
とか言っても信じてもらえないので検証してみましょう❗️😸

さっそく本題

シミュレーション内容

前提

  • 適正レートは1700とする
  • 週に300回対局するオセクエ廃人

ケース①

  • 予期せぬ連敗でレートが1600まで落ちる😿
  • その後レート1700の相手と300連戦(勝ち負けを交互に繰り返す)2

ケース②

  • 連敗しなかった世界線😸
  • レート1700の相手と300連戦(勝ち負けを交互に繰り返す)

→ 300連戦後のレートを比べてみる❗️✊😸

レーティング計算ロジック

レーティングの計算はイロレーティングでやります🧮✨

[ご参考]

あわせて読みたい

※多くの対戦ゲームやオセロ連盟レーティングはイロレーティングをベースに色々手が加えられているので完全に同じ結果にはならないと思います😿

プログラム

PHPで実装しました👨‍💻

<?php
// 想定勝率
function winRate($myRating, $opponentRating)
{
    return 1 / (10 ** (($opponentRating - $myRating) / 400) + 1);
}

// レーティング計算
function rating($myRating, $opponentRating, $isWinning)
{
    $winRate = winRate($myRating, $opponentRating);
    
    return $isWinning
        ? $myRating + (1 - $winRate) * 16
        : $myRating - $winRate * 16;
}

// 検証開始時のレーティング
$myRating = 1600;

// レーティング1700の相手と300回対戦する(交互に勝ち負けを繰り返すだけ)
for ($i = 0; $i < 300; $i++) {
    $isWinning = $i % 2;
    $myRating = rating($myRating, 1700, $isWinning);
}

echo $myRating; // 1703.9490319962

結果

ケース①(連敗したあとに300戦)
→ 1703.9490319962

ケース②(連敗しないで300戦)
→ 1704.0428496813

なんと0.1しか変わりませんでした🙀💦

1週間対局すれば連敗は実質無かったことになります😽💞

これで心置きなく連敗できますね❗️😸…❓😿

  1. 無料で世界ランカーレベルのオセラーとも対戦できる神ゲー オセロクエスト ↩︎
  2. レート1700の対戦相手は毎回別の人と仮定する ↩︎
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

福岡在住のフリーランスエンジニア
トライアスロンやボードゲームが好きです

【プログラミング】
バックエンド: PHP(主にLaravel)/Node.js
フロントエンド: React/Vue

【ボードゲーム】
オセロ: 全国大会出場(引退勢)
囲碁: 級位者大会で初段権利獲得
将棋: ウォーズ2級