グリコレーティングシステムと呼ばれるアルゴリズムを実装しました。 ★操作方法 ◯旗を押してリセット ◯スペースキーを押すと乱数により相手チームのレーティングとレーティング偏差(ただの標準偏差)と勝敗が設定され自分の新レートが計算されます。 ◯Tを押すと論文に記載されているサンプルをそっくりそのまま実行します。 約1464.06になるはず。 ◯Sを押すとSplatoon2/3のXマッチと同じ(と思われる)設定にします。 ★パラメーターの説明 右上 レート / R : あなたの現在のレートです。 偏差 / RD : 2倍のRD分±レートに誤差があります。(厳密には約95%。詳しくは標準偏差でggr) ここはいじらない。 変動しやすさ / τ : 0.3≦τ≦1.2で決め、小さければ変動が落ち着きます。 変動率 / σ : 戦績の安定度合いです。大きければ不安定になります。 人数 : 敵の人数を決めます。自然数なら何人にしても大丈夫です。 INITIAL RATE : 初期レートです。好きに変えてください。 ε : 定数です。εN論法で出てくるやつと似てる気がします。極限的な考え方(?) おそらくさらに小さくしても対して精度は増えませんが、増やせば精度は悪くなります。変えない方が良い。 左上リスト Enemy team Rating : 相手のレーティングと偏差が格納されています。追加でスケール変換という処理をした値も追加で格納しています。 sj : 戦績です。1が勝ち、0.5が引き分け、0が負けです。 その他 : 計算用の一時変数です。 ちょっといじれば、スプラトゥーンのシミュレーションできそう
Splatoon2,3等でのレーティング計算につかわれていると知って実装、また各数学的な操作の理解をしたかった。 Scratchを探してみましたが無かったので... ★グリコレーティングってなんぞや? グリコ2レーティングは様々なオンラインゲームのレーティング対戦で導入されている、レーティングアルゴリズムです。 よくある勝てば上がって負けると下がるアレです。 実力を数値化するという試みにより生まれたアルゴリズムで、2ということは当然初代もあります。今回実装したのは改善版です。 是非、中をみて仕組みを理解しようとしてください() どうやら、平均を取るときの裏技(?)として知られる偽の値の差をとって平均を早く楽に求める手法の応用らしいです。