* レート計算式 (2011/11/30 の時点ね) [#w1a05b17]

** 現状の計算の流れ [#n98d4e97]

+ ゲームのレベル設定のため、基礎となる変更値を定める
+ 勝利チーム側は、敗北チーム側の各メンバに勝利したものとしてElo Ratingを適用する、敗北は逆
+ 算出結果に、チーム内責任係数を掛けて増減させる

** 実際の計算 [#w6ef9300]

*** まず、変動の基礎値を定める [#od92691b]

[基礎変動値] = 16 + ([勝利チームのレート合計] - [敗北チームのレート合計]) * 0.01

ただし、[基礎変動値] が1未満のときは[基礎変動値] = 1、[基礎変動値] が32より大きいときは[基礎変動値] = 32となる。

*** 続いて、勝利チームは1人1人が、敗北側チームの全員に勝ったものとして扱う [#b9737b98]

[一時変動値] = [基礎変動値] + ([勝ったプレイヤーのレート] - [負けたプレイヤーのレート]) * 0.04
[変動値] = [一時変動値]

これを負けたプレイヤー全員に対して繰り返す。

ただし、[一時変動値] が1未満のときは[一時変動値] = 1、[一時変動値] が32より大きいときは[一時変動値] = 32となる。

*** 最終的に、変動値に対してチーム内責任の係数を掛けて小数点以下四捨五入して変更値とする [#ib89d3f9]

[最終変動値] = [変動値] * ([勝ったプレイヤーのレート] / [勝ったチームのレート合計])

** アルゴリズム? [#qcd18257]

 foreach [勝利チーム] as [勝利チームの各メンバーのレート]
   
   [変動値] = 0
   [一時変動値] = 0
   
   foreach [敗北チーム] as [敗北チームの各メンバーのレート]
     [一時変動値] += [基礎変動値] + ([勝利チームの各メンバーのレート] - [敗北チームの各メンバーのレート)* 0.04
     
     if([一時変動値] < 1) [一時変動値] = 1
     if([一時変動値] > 31) [一時変動値] = 31
     
     [変動値] += [一時変動値]
     
   endforeach
   
   [最終変動値] = round([変動値] * ([勝利チームの各メンバーのレート] / [勝利チームのレート合計]))
   
   レート変更([勝利チームの各メンバーのレート] + [最終変動値])
   
 endforeach

敗北側はこれを逆転させたもの。

 foreach [敗北チーム] as [敗北チームの各メンバーのレート]
   
   [変動値] = 0
   [一時変動値] = 0
   
   foreach [勝利チーム] as [勝利チームの各メンバーのレート]
     [一時変動値] += [基礎変動値] + ([敗北チームの各メンバーのレート] - [勝利チームの各メンバーのレート)* 0.04
     
     if([一時変動値] < 1) [一時変動値] = 1
     if([一時変動値] > 31) [一時変動値] = 31
     
     [変動値] += [一時変動値]
     
   endforeach
   
   [最終変動値] = round([変動値] * ([敗北チームの各メンバーのレート] / [敗北チームのレート合計]))
   
   レート変更([敗北チームの各メンバーのレート] - [最終変動値])
   
 endforeach

分かりにくいね…。

** レートの計算式を考えてくれる人へ [#j6c026f4]

多数決的に決めようかとも思うので、以下のテンプレに従って提案すると有効かもしれません。テキストファイルにコピペして編集して、新規ページを作成してファイルの中身をまるごとまたコピペすると良いかも。

[]部分を編集するといいかな。

 * [タイトル] (考案者: [あなたのお名前])
 
 // 現状のレートの問題点は何でしょう?
 
 
 // 上で挙げた問題点はどうして問題なのか?実際の結果やログを示してみる
 
 
 ** 考えた方法
 
 // 上で挙げた現状のレートの問題点から、じゃあ何が出来ればいいんでしょう?
 
 // そのための方法として、どうやってそれ計算するんでしょう?
 
 // 他のコミュニティで使われている実績があるなら、そのログや結果を示してみる
 
 // その他のコミュニティで使われている実績は、どの程度良いものであると言えるんでしょう?
 
 // コメントが欲しい人は下行の頭の // を外しておこう
 // #pcomment
 
 // 何か投票してもらいたい人は下行の頭の // を外して選択肢を追加して使おう
 // #vote(選択肢1,選択肢2,...)
[[FrontPage]]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS