[英]Unbounded resting players in round robin tournament
是否有可能使用無限數量的休息玩家來制作循環算法? 例如, 這可以工作,但它只能管理一名休息的球員/球隊。
實際情況是 24 名玩家,每輪 16 名玩家,每輪 8 名玩家等待。 理想情況下,他們都將在 23 輪比賽中互相比賽,並盡可能避免雙休。
我已經被這個問題困住了很長一段時間,所以我真的很感激你的幫助!
只要匹配的總數可以被每天的匹配數整除,這是可能的。 在您的場景中,每天有 8 場比賽,總共有 (12*23) 場比賽,所以這是不可能的,但每輪有 12、8、6、4 或 2 名玩家是可行的。
您可以修改調度的循環方法。 如果您有 2N 個玩家,調度算法通常會在列中生成 N 對的塊:
Day 1:
1 2 3 4 5 6 7 8
16 15 14 13 12 11 10 9
Day 2:
1 16 2 3 4 5 6 7
15 14 13 12 11 10 9 8
...
該時間表的一個有用特性是,如果玩家 P 在某一天被安排在k
列中,那么 P 將在第二天被安排到k-1
、 k
或k+1
。 因此,如果您連接每一天的列,則每個玩家的號碼之間至少有 N-2 列(即匹配)。 如果您然后從左到右安排比賽,每天減少足夠的輪次,那么任何有效數量的球員都可以參加(保證每個球員每輪最多打一次)。 例如,如果您想要上面的 4 個休息玩家:
Day 1:
1 2 3 4 5 6
16 15 14 13 12 11
Day 2:
7 8 1 16 2 3
10 9 15 14 13 12
...
很難找到比這更好的間隔雙休的方法,因為每個球員上場時間之間的“距離”盡可能均勻。 對於奇數玩家,您可以使用正常調整為圓方法添加一個虛擬玩家。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.