クリンチナンバー計算ページの計算不具合修正。
クリンチナンバー計算ページの計算ミスを修正です。申し訳ありません。
★ミスの概要★
パ・リーグのクリンチナンバー計算ページで、9月10日〜14日までの「ライオンズのCSクリンチナンバー」に計算ミスがありました。ライオンズのCSクリンチナンバーが、最大で 1 ズレます。
そのため、9月14日の「ライオンズ自力CS消滅」を検出できませんでした。
…現在は修正済みです。
そのため、9月14日の「ライオンズ自力CS消滅」を検出できませんでした。
★ミスの範囲★
上記のとおり。それ以外の値に、今のところ間違いは見つけていません。
ミスの原因は下記のようなものだったので、少なくとも「優勝クリンチナンバー / 優勝マジックナンバー」に関しては間違いは起こり得ない筈です。
また、セ・リーグの方のデータは大丈夫だと思います。
ミスの原因は下記のようなものだったので、少なくとも「優勝クリンチナンバー / 優勝マジックナンバー」に関しては間違いは起こり得ない筈です。
また、セ・リーグの方のデータは大丈夫だと思います。
★ミスの原因★
順位決定方法の認識違い&プログラムミスです。
順位決定方式の「勝率が同じ場合は、チーム同士の対戦勝率が高い方が上位」という表現。「同率チームが2チーム」の場合は 1 対 1 で比較すれは良いとして、「同率チームが3チーム以上」の場合には、
- 【正しい】当該チーム間の対戦成績をまとめて比較する。
- 【間違い】当該チームそれぞれの対戦成績を個別に比較する。
…という事なんですな。今まで、この部分を間違っていた(2.の認識で計算していた)、と。
幸いにも「クリンチナンバー算出途中の計算で、3チーム以上が同率に並んで、それらのチーム間の対戦成績比較をした場合に上記 1. と 2. とで計算結果が異なる」というパターンが、おそらくはかなりのレアケースだったので、今まで顕在化しなかったようです。
たまたま「ライオンズの自力CSが無くなるか否か(ライオンズが全勝したときに3位以内に入れるか)」というクリティカルな状況のときに問題が浮かび上がったために気づいた次第。ラッキーだったと言うべきでしょうかな。
とりあえず当該部分のコードを正しい比較が行われるように修正して、パ・リーグの2013年9月10日以降のデータを計算しなおしています。
直した部分に新たに不具合が発生する可能性も無きにしもあらずなのですが、その時はまた直します。
疑問・ツッコミなど大歓迎ですので、今後ともよろしくお願いします。
ではでは。
【2013.09.22 追記】続きがあります。→ 続・クリンチナンバー計算ページの計算不具合修正。
匿名
セ界の件ですが、9月14日の試合終了時点で阪神5位以上確保のクリンチ「0.5」。そして15日最下位ヤクルトと対決。なぜヤクルトが勝ったのに阪神の5位以上が確定したのですか?15日5位DeNAが負けたことも関係しているのでしょうか?
回答宜しくお願いします。
tyzから匿名への返信
お書きになられているとおり、15日の試合でDeNAが敗れたために阪神の最下位は無くなりました。
たとえば「優勝マジック(優勝クリンチ)」には「マジック対象チーム」というものがありますが、2位以下のクリンチナンバーの対象は「個別のチーム」ではなく「複数のチームのまとまり」です。
5位クリンチナンバーでは、クリンチの計算対象は「最下位チーム」でなく「他の5球団全て」になります。
5位クリンチは「特定の1チームを確実に上回るために必要な勝数」ではなく「自分以外の5チームが最高に頑張ったとしても、その5チームのうち、いずれかの(少なくとも)1チームが必ず自分を上回れなくなるのに必要な勝数 = 5チーム全てが揃って自分を上回ることを不可能にするために必要な勝数」です。
なので、自分の勝敗や最下位球団の勝敗だけではなく、その他の球団の勝敗も関わってきます。
匿名
9月16日全試合終了現在の楽天の最短優勝ですが、9月23日は無いのでしょうか?
楽天は9月17日〜23日までの間に6試合あります。
17日〜19日は3位のソフトバンクとの対決で、楽天が3連勝するとマジックが3減ります。
2位のロッテは17日と18日にオリックスと対決し、2連敗するとマジックが2減ります。
合わせてマジックは5減りますので、マジックは6になります。
またこの結果、19日の試合終了時点で2位のロッテと3位のソフトバンクの順位は変わらず、ゲーム差も1に広がります。
次に21日〜23日の日本ハム戦で楽天が3連勝した場合、マジックは3減ります。
一方、ロッテとソフトバンクは2位と3位の直接対決です。この場合、初戦でロッテが負けるとマジックが1減り、ソフトバンクが2位になります。そして次の日に今度は2位のソフトバンクが負けるとマジックが1減り、ロッテが2位になります。更に次の日に今度は2位のロッテが負けるとマジックが1減りますので、マジックは3減ります。
こうなると合わせて6減り、楽天が23日に優勝という可能性がある気がするのですが、如何でしょうか?
tyzから匿名への返信
ざっと計算してみました。
まず、ご質問の中ほど
> この場合、初戦でロッテが負けるとマジックが1減り、ソフトバンクが2位になります。
これ、違ってませんか? 16日の終了時からこの日まで Hは1勝3敗、Mは0勝3敗なので、まだMが上です。どこかで M にひとつ余計に負けがついてしまっているような気がしますが如何でしょうか?
17〜22日まで「E=5戦全勝、HはEに3戦全敗して、MはBに2戦全敗して、H-MはHの2勝」というのが「楽天に最も都合のよい星勘定」になると思います。(この日にMとHの順位が逆転します)
【22日終了時】
E 78-50-2:.6094
H 69-62-2:.5267
M 67-62-2:.5194
この時点での楽天の優勝マジックは「2」です。一見、翌23日に「Eが勝利して、マジック対象チームが敗れる」と優勝が決まりそうです。
・23日に、まず楽天が勝利すると優勝マジックは「1」に。
さて、23日は H-M の直接対決なのですが、22日の時点で、楽天のマジック対象チームは「H,Mのどちらか1チーム」ではなく「H,Mの2チームそれぞれ」なのですね。この両チームは最終的に到達可能な最高成績(残り全勝した場合の最終勝率)が同じなので。
ということで、23日の H-M 戦。
・Hが勝つとマジック対象チームがHに絞られ、しかもマジック対象チームが試合に勝っているのでマジックは減らない。「優勝マジック 1」が残ります。
・Mが勝つとマジック対象チームがMに絞られ、しかもマジック対象チームが試合に勝っているのでマジックは減らない。「優勝マジック 1」が残ります。
・引き分けた場合の勝率計算をしてみると、楽天が優勝を確定させるには「残り試合であと1引分」が必要だという事が分かります。ウチの計算ページで言うところの「精密マジック(クリンチ)0.5」、世間一般で言うところの「優勝マジック 1」が残ります。
そんなわけで、23日に優勝が決まることは無さそうなのですが。
匿名
セリーグのクリンチナンバーについての質問です。
20日現在、ヤクルト(S)のCS消滅が21日となっています。
これは、21日にSが負け、広島(C)が勝つと
SのCSが消滅することを表していると思われます。
ところがその仮定の下で、22日以降Sが全勝、かつCが全敗すると
SとCがともに65勝77敗となり、勝率・勝利数で並びます。
そのとき、セリーグの順位の決め方では直接対決をみるわけですが、
この時点では12勝12敗となっており、これでも決着がつきません。
その結果、前年の順位が上のSが3位となります。
したがって、21日にSのCSは消滅しないと思うのですがいかがでしょうか。
tyzから匿名への返信
ご指摘のとおりです。
この記事で説明している「複数チームが同率で並んだ場合」の計算の修正漏れ(修正後のプログラムの不具合)です。改修でき次第、訂正のアナウンスをさせていただこうと思っています。