challenge 総当たり戦の日程作成

任意の偶数Nのチームの総当たり戦を最短日数(N-1日)で行う場合の日程表を1つ作成してください。

解はひとつではない場合もあります。
もし、余力があれば、全ての可能性も求めてください。

これは、スポーツスケジューリングと言う分野の問題で、数学的には、カークマンの問題と言うのが近いようです。

例えば、4チームであれば、

1-2 3-4
1-3 2-4
1-4 2-3

6チームであれば

1-2 3-4 5-6 
1-3 2-5 4-6 
1-4 2-6 3-5 
1-5 2-4 3-6 
1-6 2-3 4-5

が解のひとつです。

Posted feedbacks - Perl

Perlが無かったので投稿します。 参考ページを見たのにこんなソースになりました。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
#!/usr/bin/perl
use strict;

sub league{
    my ($team) = shift;
    my @rev  = (2 .. $team, 2 .. $team);
    for(my $h=0; $h<($team-1); $h++){
        print "[1,$rev[$h]]";
        for(my $i=1; $i<($team-1)/2; $i++){
            print "[$rev[$i+$h],$rev[-($i-$h)]]";
        }
        print "\n";
    }
}

league(6);

Index

Feed

Other

Link

Pathtraq

loading...