シート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列~AZ列 順位点込みの勝数
順位点は、リーグの順位に応じて次の計算式で計算した値を各棋士に付与している。
順位点=(リーグ戦の人数-順位)/リーグ戦の人数
例.王位戦の場合
1位→順位点 0.83点
2位→順位点 0.67点
3位(4名)→順位点 0.50点
例.女流王位戦の場合
1位→順位点 0.83点
2位→順位点 0.67点
3位→順位点 0.50点
4位(3名)→順位点 0.33点
順位点は4行目にセットされている。
勝数は各行ごとにAF列~AT列にある「各対局ごとの勝者」に当該棋士の名前が出てくる件数となる。
ここではその勝数と順位点を加えた値を「順位点込みの勝数」としている。
・BA列~BF列 プレーオフ含み当期順位
rank関数を使って、順位点込みの勝数に基づき当期順位を導き出す。
ただし、1位については順位点によらず勝数が同じならばプレーオフへ進出できるので、当該棋士の勝数がリーグ全員の中での最多勝者の勝数が同じ場合には1位としている。
(int関数を使い、「順位点込み勝数」から「勝数」を導き出している。)
・BG列~BL列 同率時最下位当期順位
王位戦・女流王位戦では予選突破者が複数いるため、順位点込みでも同率になるケースがある。
例えば、当期順位2~4位に予選突破者が3人同率で並ぶようなケースである。この場合には後述するように各棋士共に当期順位2~4位に発生確率を等分して付与する。
そのために、ここでは同率の際の一番下の順位を求める。(前述の例では4位)
わかりにくいので具体例で示す。
| ①順位 |
②棋士 |
③勝敗 |
④プレーオフ含み当期順位 |
⑤=④の逆順 |
⑥=7-⑤ |
| 1 |
A |
5勝0敗 |
1 |
6 |
1 |
| 4 |
B |
3勝2敗 |
2 |
3 |
4 |
| 4 |
C |
3勝2敗 |
2 |
3 |
4 |
| 4 |
D |
3勝2敗 |
2 |
3 |
4 |
| 2 |
E |
1勝4敗 |
5 |
2 |
5 |
| 3 |
F |
0勝5敗 |
6 |
1 |
6 |
⑤のところではrank関数を逆順で用いる。(ただし「プレーオフ含み当期順位」の計算時同様に勝数が最多タイである場合には最下位にする。)
同率の者がいなければ、④に1~6の数字が並び、⑤には逆に6~1の数字が並ぶだけである。
だが、同率の者がいる場合には上表のようになる。⑥ではこの値を「リーグの人数+1」である7から引いている。そうすると「同率時最下位当期順位」が出る。
rank関数を使えば、同率の場合上位の方に寄るという性質を利用したものだ。
・BM列 1位人数
当期順位が同率1位になっている人数をカウントする。
「プレーオフ込み当期順位」が1位の時に、それが「単独1位」なのか「プレーオフ進出」なのかを判別する際に用いる。
・BN列~BS列 期待値計算
勝数の期待値を計算する。
各勝敗パターン毎に次の計算を行い集計する。
=(「順位点込み勝数」-「順位点」)×「発生確率」
・BT列~CA列 順位1位棋士の当期順位発生確率
上記の過程で得られた「プレーオフ含み当期順位」と「同率時最下位当期順位」に基づき、「当期順位発生確率」をセットする。
当該棋士が1位の場合あるいは同率の棋士がいない場合には、「プレーオフ含み当期順位」=「同率時最下位当期順位」となるため、該当する「当期順位」の列に「発生確率」をセットすればよい。
しかし、「発生確率」を等分して付与しなければならないケースがあるため、少々ややこしい式を使っている。前述の例でいえば、2~4位が同率の場合には「発生確率」を3等分(4-2+1=3より3等分とわかる。)して、「当期順位」が2位~4位の列に3等分した値をセットすればよい。
なお、「当期順位」が1位の時には、「1位人数」が1ならば「単独1位」、2以上ならば「プレーオフ進出」ということになるので、それぞれ該当する列に「発生確率」をセットする。
これ以降の列は順位2位~6位の棋士についてのデータについて同様の処理が繰り返されている。
最終更新:2010年01月04日 10:32