シートmで入力された内容に基づき、シートcで計算を行っている。
以下ではシートcでの処理内容を順に説明する。
なお、「順位」という言葉がリーグ開始時のものか、リーグ戦の結果決まるものかがわかりにくいので、後者については「当期順位」と明示することで混乱を避けている。
・A列~O列 勝敗パターン
15局の勝敗パターン(2^15通り)を列挙するための列である。
0~32767までの数値を2進数展開した値である。
各セルで「0」は2行目、「1」は3行目の棋士の勝利を意味する。
・P列~AD列 各対局ごとの発生確率
勝敗パターンに応じて発生確率をセットする。
・AE列 発生確率
Product関数を使って各対局ごとの発生確率を掛け合わせ、この勝敗パターンの発生確率を求める。
・AF列~AT列 各対局ごとの勝者
各セルで勝敗パターンが「0」なら2行目、「1」なら3行目の棋士の名前をセットする。
・AU列~BD列 順位点込みの勝数
順位点は、リーグの順位に応じて次の計算式で計算した値を各棋士に付与している。
順位点=(リーグ戦の人数-順位)/リーグ戦の人数
例.1位→順位点 0.9点
2位→順位点 0.8点
:
9位→順位点 0.1点
10位→順位点 0.0点
「順位点」と「6回戦までの勝数」を加えた値が4行目にセットされている。
「7回戦以降の勝数」は各行ごとにAF列~AT列にある「各対局ごとの勝者」に当該棋士の名前が出てくる件数となる。
ここではその「7回戦以降の勝数」と「順位点」と「6回戦までの勝数」を加えた値を「順位点込みの勝数」としている。
・BE列~BN列 プレーオフ含み当期順位
rank関数を使って、順位点込みの勝数に基づき当期順位を導き出す。
ただし、1位については順位点によらず勝数が同じならばプレーオフへ進出できるので、当該棋士の勝数がリーグ全員の中での最多勝者の勝数が同じ場合には1位としている。
(int関数を使い、「順位点込み勝数」から「勝数」を導き出している。)
・BO列 単独1位発生確率
「プレーオフ含み当期順位」が1位の人数が1人(つまり「単独1位」)になっている場合には、前述の「発生確率」をセットし、複数人の場合にはゼロをセットする。
・BP列~BY列 期待値計算
勝数の期待値を計算する。
各勝敗パターン毎に次の計算を行い集計する。
=(「順位点込み勝数」-「順位点」)×「発生確率」
・BZ列~CK列 当期順位発生確率
上記の過程で得られた「プレーオフ含み当期順位」に基づき、「当期順位発生確率」をセットする。
sumif関数を使い、当該棋士が1位~10位それぞれの順位の時の「発生確率」を合計した値がセットされる。
1位の場合は、前述の単独1位発生確率を合計する。
最終更新:2010年01月04日 10:32