2012-09-03 46 views
1

我有羣組的地圖。每個小組有球員名單:如何在玩家之間創建時間表

Map<String, List<Player>> playerByGroup = new LinkedHashMap<String, List<Player>>(); 

例如:

地圖包含:

group A: players 1 2 3 4 5 6 
group B: players 7 8 9 10 11 12 
group C: players 13 14 15 16 17 18 
group D: players 19 20 21 22 23 24 

現在我需要創建計劃。從每一個基團每個玩家應該播放器播放器從另一組

例如:

播放器1應該播放器播放器7 - 24,但不與播放器2 - 6

此心不是問題創造

但現在我有問題:

我需要創建圓包含的遊戲numberOfPlayer/2。在第二輪中每一位玩家都能玩只是一次

例如

1.round should be looks like: 

1.game 1 vs 7 
2.game 13 vs 19 
3.game 3 vs 9 
4.game 14 vs 20 
5.game 2 vs 8 
6.game 15 vs 21 
7.game 4 vs 10 
8.game 16 vs 22 
9.game 5 vs 11 
10.game 17 vs 23 
11.game 6 vs 12 
12.game 18 vs 24 

2.round ... 

應該只有18輪,因爲一個球員應該有18個播放器上播放。

問題:

問題是創建僅僅18輪,其中每輪一個玩家只是偶爾玩一次

+0

如果我理解正確,每個球員都應該和所有球員一起比賽來自另一支球隊只有一次。我對麼? – kant

+0

是的,但從另一個組 – hudi

+0

+1爲承認這是作業!但是,您需要向我們展示您迄今爲止所嘗試的內容。我們感謝您還不知道答案(否則您不會在這裏),但同樣我們希望您在發佈之前自己解決它。 –

回答

0

我會爲你解釋答案的例子。 在一般情況下很容易擴展它。

將你的回合分成三個主要集合,所以我們在每組中有6回合。

在第一盤有六發

:D.

A組將發揮B組所有選手的所有球員和組的所有玩家C的溫度將發揮集團的所有隊員在第二組A組的所有球員將對C組的所有球員進行比賽,並且B組的所有球員將對D組中的所有球員進行比賽。第三組中的所有球員將在組D中的所有球員中進行比賽。 B組的球員將參加C組的所有球員。

+0

是的,這很好,但如果會有3個小組會怎麼樣? – hudi

+0

與2n + 1一起工作的版本:來自A的一半玩家來自B的一半玩家,來自B的另一半玩家來自C的一半玩家......您會注意到它需要偶數個玩家或團隊(其有道理,嘗試與3隊1) – njzk2

+0

我已經更新了我的答案。但如果你的團隊有偶數人數,njzk2 sollution是正確的,並且在你有奇數團體時可以幫助你。如果每個組的人數和組數都是奇數,則不可能完成一輪,因爲我們總共有奇數個人。 – Ali

0

提示您:

把它看成是你有6人的組合問題每組。組數4。您需要每位玩家參加比賽但不得與隊伍組合,那麼組合的總數將爲 24C4 - 4*(6*(6-1)/2)CCombination)或 (24*23*22*21)(4*3*2*1) - 4*(6*(6-1)/2)。相應地編碼。

+0

你從哪裏得到5組?什麼操作是24C5? – hudi

+0

@hudi感謝.....爲指出它...我已更新... – 2012-09-03 10:10:02

+0

確定,但我仍然不知道什麼是24C4意味着 – hudi

相關問題