2009年5月19日

レーティングの計算を自力で

レーティングの計算を自分でやりたいと思う人は多いと思うので、誰でも簡単に計算できるような仕組を自分のホームページ上に加えようと考えました。課題は2つ。1つはホームページ上でそのような演算を行なうには、私があまり詳しくない言語(JavaScript)を使わなければならないこと。もう1つはJCAが利用している計算式が不明なことです。

まずは JavaScript との悪戦苦闘の末、簡易式を使ったレーティング計算をできるようにしました。計算式には最近 Behind the Scene で紹介されていた計算式を採用しています。5月12日に私が書いた簡易式とはまったく違う式に見えるかもしれませんが、実際はほとんど同じです。検証していただければ分かります(0.04 を掛けるのと 25 で割るのは同じことだし、16 は 400÷25 ですから)。異なる点は、ドローの時の計算式と上限(30)と下限(0.5)の存在です。ホームページのその他のページに追加したのでよかったら使って下さい。

計算式の方はJCAに直接問合せてみましたが、案の定、公開していないとのことです。しかし、そこで諦めたりせず、別の質問を投げてみました。JCAからの回答を待つ間、正規のレーティングの計算方法について自分で分かる範囲で調査しています。私は数学に強いわけではないので、学術的な解説はほとんど斜め読みです。それでも次のことが分かりました:
■チェスに限らず、一般的にレーティングを計算するには Elo レーティング と呼ばれる計算方法が用いられます。
■Elo レーティングを計算するには、双方のレーティングと勝敗以外にKと呼ばれる値を指定する必要があります。

JCAも Elo レーティングに基づいた計算式を採用していると想像しています。仮にそうだとすると、Kの値さえ分かれば、簡易式よりも正確な計算ができることが期待できます。FIDEのサイトで計算に利用できるKの値は10、15、25の3つだけですが、JCAが採用しているKの値は25よりも大きそうです。左記以外で一般的に使われるKの値は16、24、32らしいので(出典)、JCAはK=32なのかもしれません。


0 コメント:

コメントを投稿