KOJIMA Hiroyoshi
kojim****@robok*****
2003年 8月 13日 (水) 14:17:27 JST
小島です。 調査どうもありがとうございます。 > チェックは battles と battle_robots テーブルから算出した Survival Rate > と league_final_results テーブルの内容をチェックし、その差が 0.005 より > 大きいものをリストアップしてみました。 > Survival Rate はプレシーズンも本線もリーグ後半半分のシーズンの順位から > 算出でよかったんですよね。 > リーグ 1、2 はシーズン 51 から 100 の、リーグ 3、4 はシーズン 26 から > 50 の順位から算出しています。 はい、シーズンの後半半分順位からで間違いないです。 この生存率の平均を求める計算は /rumble-jp/java/rumblejp/ejb/session/LeagueManagerBean.java 内の leagueFinalResults(int leagueId, int season, Connection con) 関数で行っています。 この関数内の av_Rank += (double) (tmp_totalRobots - tmp_rank)/ (double) (tmp_totalRobots - 1); ここで av_Rankは求める生存率。 tmp_totalRobotsはシーズンの全ロボット数,tmp_rankはシーズンの特定ロボットの順位です。 この生存率の導出方法はルールのページを参考に作りました。 #プレシーズンの順位はそれぞれのシーズンの生存率 #(シーズン戦の終了時に対戦相手のロボット総数のうち下位にランクされたロボットのパーセンテージで定義、 10台中2位の場合、8/9で約89%) #の平均で決定します。 perlは全然知らないので、間違っていたら申し訳ないのですが、Konkitiさん、final_result.pl の my $season_score = ($max_rank - $rank) / $max_rank; を my $season_score = ($max_rank - $rank) / ($max_rank-1); としてみてください。 > 結果は > リーグ 1 0件 > リーグ 2 5件 > リーグ 3 4件 > リーグ 4 84件 > > と、リーグ 4 だけが極端に多くなっています。なぜだかわかりませんが、 > 今回はとりあえずここまで。 なぜでしょう?うーん ..... リーグ1とリーグ4でこんなに違うのは分かりません ところで このリーグ最終順位ですが 同率で並んだ場合は、division結果と同様にrobot_idの小さいものが有利に なれば良いと思います。どうでしょうか? -- KOJIMA Hiroyoshi (M2) mail : kojim****@robok*****