たつをの ChangeLog : 2013-03-26

サッカーのワールドカップのアジア最終予選も終盤。5国のうち上位2国が本選に出場でき、3位はプレーオフへ。

現在の順位とポイントと得失点差:
順位
11310日本
27-6ヨルダン
360オーストラリア
46-3オマーン
55-1イラク

残りの試合:
2013.6.4
日本 vs オーストラリア
オマーン vs イラク
2013.6.11
オーストラリア vs ヨルダン
イラク vs 日本
2013.6.18
オーストラリア vs イラク
ヨルダン vs オマーン

考察


ここでは日本が2位以内に入れるか否かについて考える。

まず分かりやすい最悪のケースを考える:
(1) 日本今後2敗戦で[13pt]確定。(勝ち点取れない。)
(2) 全勝しても日本に届かないオマーンが今後全敗で[6pt]確定。(ライバルが勝ち点取りまくり。)

で、この条件では、
オーストラリア[9pt](残2試合)、
ヨルダン[10pt](残1)、
イラク[11pt](残1)。

この3国同士の試合は、
オーストラリア vs ヨルダン(6/11)、
オーストラリア vs イラク(6/18)。

この2試合の結果でどうなるか考察:

6/11に引き分けだった場合:
ヨルダン[11pt]確定、
オーストラリア[10pt](残1試合)、
イラク[11pt](残1)。
→6/18の試合がどうなろうと日本は2位以内。

6/11にオーストラリアが勝利した場合:
ヨルダン[10pt]確定で脱落。
オーストラリア[12pt](残1試合)、
イラク[11pt](残1)。
→6/18の試合がどうなろうと日本は2位以内。

6/11にヨルダンが勝利した場合:
ヨルダン[13pt]確定。
オーストラリア[9pt](残1試合)で脱落決定、
イラク[11pt](残1)。
→6/18にイラクが勝利すると、
イラク[14pt]確定。
イラク1位で、日本とヨルダンのどちらかが2位だが、現在の得失点差が10と-6なのでほぼ日本が2位(※)。
→6/18にイラクが負けるか引き分けだと日本は2位以内。

というわけでほぼ99.9%の確率でワールドカップ本戦進出が決定している。

※得失点差について。日本とヨルダンでは16点の差がある。つまり、例えば、日本が今後2試合0-4、0-4で破れ、ヨルダンが今後2試合4-0、4-0で勝ってやっと差がなくなるレベル。ほとんどありえない。(3/29に追記)

シミュレーション


以上の考察結果が正しいかどうか確認するためにPerlでプログラムを書いてシミュレーションしてみた。

今後の6試合の結果のすべての可能性を列挙し、勝ち点を計算するプログラム。再帰関数で深さ優先探索。

■コード(fifa.pl):
#!/usr/bin/perl
use strict;
use warnings;
use Storable;

# 2013/3/26の試合終了後の勝ち点
my $c_ref = {
          '日本' => '13',
          'ヨルダン' => '7',
          'オーストラリア' => '6',
          'オマーン' => '6',
          'イラク' => '5'
};

# 残りの試合
my @ms = (
    ['2013.06.04', "日本", "オーストラリア"],
    ['2013.06.04', "オマーン", "イラク"],
    ['2013.06.11', "オーストラリア", "ヨルダン"],
    ['2013.06.11', "イラク", "日本"],
    ['2013.06.18', "オーストラリア", "イラク"],
    ['2013.06.18', "ヨルダン", "オマーン"]
    );

my @results;
df_simu($c_ref, []);

foreach my $r (@results) {
    print join(", ", map {"$_($r->{c}{$_})"} sort {$r->{c}{$b} <=> $r->{c}{$a}} keys %{$r->{c}})."\n";
    for (my $i = 0; $i < @ms; $i++) {
        print " ".$ms[$i][0]." ";
        my $mr = $r->{h}[$i];
        if ($mr == 0) { # 0 Home Win, 1 Draw, 2 Away Win
            print "o $ms[$i][1] : x $ms[$i][2]\n";
        } elsif ($mr == 1) {
            print "- $ms[$i][1] : - $ms[$i][2]\n";
        } elsif ($mr == 2) {
            print "x $ms[$i][1] : o $ms[$i][2]\n";
        }
    }
    print "\n";
}

sub df_simu {
    my ($c_ref, $h_ref) = @_;
    my $nth = @$h_ref;
    if ($nth == @ms) {
        push @results, {c => $c_ref, h => $h_ref};
        return;
    }
    foreach my $mr (0, 1, 2) { # 0 Home Win, 1 Draw, 2 Away Win
        my $t_ref = Storable::dclone($c_ref);
        if ($mr == 0) {
            $t_ref->{$ms[$nth][1]} += 3;
        } elsif ($mr == 1) {
            $t_ref->{$ms[$nth][1]} += 1;
            $t_ref->{$ms[$nth][2]} += 1;
        } elsif ($mr == 2) {
            $t_ref->{$ms[$nth][2]} += 3;
        }
        df_simu($t_ref, [@$h_ref, $mr]);
    }
}

■実行結果の一部:括弧内の数字は全試合終了後の勝ち点。
% ./fifa.pl
日本(16), オーストラリア(12), ヨルダン(10), オマーン(9), イラク(8)
 2013.06.04 o 日本 : x オーストラリア
 2013.06.04 o オマーン : x イラク
 2013.06.11 o オーストラリア : x ヨルダン
 2013.06.11 o イラク : x 日本
 2013.06.18 o オーストラリア : x イラク
 2013.06.18 o ヨルダン : x オマーン

日本(16), オーストラリア(12), オマーン(10), ヨルダン(8), イラク(8)
 2013.06.04 o 日本 : x オーストラリア
 2013.06.04 o オマーン : x イラク
 2013.06.11 o オーストラリア : x ヨルダン
 2013.06.11 o イラク : x 日本
 2013.06.18 o オーストラリア : x イラク
 2013.06.18 - ヨルダン : - オマーン

日本(16), オーストラリア(12), オマーン(12), イラク(8), ヨルダン(7)
 2013.06.04 o 日本 : x オーストラリア
 2013.06.04 o オマーン : x イラク
 2013.06.11 o オーストラリア : x ヨルダン
 2013.06.11 o イラク : x 日本
 2013.06.18 o オーストラリア : x イラク
 2013.06.18 x ヨルダン : o オマーン

全出力を確認した結果、日本の2位以内が確定しないのは下記のケースのみ(1/729の確率)。
イラク(14), ヨルダン(13), 日本(13), オーストラリア(9), オマーン(6)
 2013.06.04 x 日本 : o オーストラリア
 2013.06.04 x オマーン : o イラク
 2013.06.11 x オーストラリア : o ヨルダン
 2013.06.11 o イラク : x 日本
 2013.06.18 x オーストラリア : o イラク
 2013.06.18 o ヨルダン : x オマーン

先ほどの考察と合致している。

結論


アウェイのヨルダン戦は負けてしまったけど、オーストラリアとオマーンが引き分けたおかげで、あと2試合残して日本の2位以内はほぼ確定。

今後、日本が残りの2試合で勝ち点を得られなくとも:
- オーストラリアがホームで2連敗しない限りは安心。
- イラクがアウェイで2連勝しない限りは安心。
- 1/729の確率でヨルダンと勝ち点が並んでも得失点差が16も多いので安心。
- その他いろいろな面で安心。

そんなわけでワールドカップ本大会に向けてがんばれ日本!

なお、3月26日分もシミュレーションに入れてみた結果、オーストラリアかオマーンが勝ってたら日本全敗のときに勝ち点で3位になっちゃうパターンが4つもあった。引き分けでよかったーw

追記130329: ほぼ突破というこの事実はマスコミであまり言及されてません。やはりまだまだ楽しみたい、ドキドキしたいのかも!
この記事に言及しているこのブログ内の記事

たつをの ChangeLog
Powered by chalow