40人问题有一个巨大的搜索空间,我不相信任何暴力解决方案会奏效。试想一下选择参加一轮比赛的 24 名球员,有 6x10^10 种方法可以做到这一点,还有更多方法可以将这 24 名球员分配到 3 对 3 的 4 个球场。
目前尚不清楚您正在寻找多少轮。有 4 个球场,每个球场有 6 名球员,每轮剩下 16 个轮空。因此,任何 5 轮的倍数 (i) 都是非常可取的,因为 16 x 5i = 80i,因此可以安排每 5i 轮比赛,40 支球队中的每支球队都有 3i 场比赛和 2i 个轮空。你已经要求“每个玩家至少玩 4 次”,所以最好的选择是寻找一个 10 轮的解决方案,每个玩家有 6 场比赛。这是一种可能的选择,其中所有伙伴都不同,所有对手都不同。
(38 15 11 v 7 25 23) (33 14 9 v 20 29 19) (40 16 27 v 37 28 21) (34 17 3 v 10 24 32)
(39 11 12 v 8 21 24) (34 15 10 v 16 30 20) (36 17 28 v 38 29 22) (35 18 4 v 6 25 33)
(40 12 13 v 9 22 25) (35 11 6 v 17 26 16) (37 18 29 v 39 30 23) (31 19 5 v 7 21 34)
(36 13 14 v 10 23 21) (31 12 7 v 18 27 17) (38 19 30 v 40 26 24) (32 20 1 v 8 22 35)
(37 14 15 v 6 24 22) (32 13 8 v 19 28 18) (39 20 26 v 36 27 25) (33 16 2 v 9 23 31)
(36 5 33 v 12 32 15) (13 7 24 v 20 4 2) (25 1 28 v 30 10 31) (37 26 38 v 3 9 18)
(37 1 34 v 13 33 11) (14 8 25 v 16 5 3) (21 2 29 v 26 6 32) (38 27 39 v 4 10 19)
(38 2 35 v 14 34 12) (15 9 21 v 17 1 4) (22 3 30 v 27 7 33) (39 28 40 v 5 6 20)
(39 3 31 v 15 35 13) (11 10 22 v 18 2 5) (23 4 26 v 28 8 34) (40 29 36 v 1 7 16)
(40 4 32 v 11 31 14) (12 6 23 v 19 3 1) (24 5 27 v 29 9 35) (36 30 37 v 2 8 17)