P1 P2 P3 P4 P5 P6 P1 1 2 3 4 5 P2 1 4 5 3 2 P3 2 4 1 5 3 P4 3 5 1 2 4 P5 4 3 5 2 1 P6 5 2 3 4 1 #### Rd 1: (P1,P2), (P3,P4), (P5, P6) Rd 2: (P1,P3), (P2,P6), (P4, P5) Rd 3: (P1,P4), (P2,P5), (P3, P6) Rd 4: (P1,P5), (P2,P3), (P4, P6) Rd 5: (P1,P6), (P2,P4), (P3, P5) #### factorial[ ((n/2)-1) * (n-1) ] / [ factorial((n/2)-1) ]^(n-1) #### Round 1: match 8 with 1, then pair up the rest symmetric to that line.. 1 | 7---|----2 8 6----------3 5----4 Round 2: match 8 with 2, then pair up the rest symmetric to the line.. 1 7 \ 2 \ \^ \ 8^ \ 6 \ 3 \ \ \ \ 5 4 Round X: ... keep rotating around the circle, etc #### my @players = qw/Frodo Sam Merry Pippin Strider Gandalf Legolas Gimli/; ######## my $num = @players; die "must have even number of players" if $num % 2; for my $partner (0 .. $num-2) { print "Round #" . ($partner + 1) . ":\n"; print " $players[-1] vs $players[$partner]\n"; for my $pair (1 .. ($num-2)/2) { my $p1 = ($partner - $pair) % ($num - 1); my $p2 = ($partner + $pair) % ($num - 1); print " $players[$p1] vs $players[$p2]\n"; } }