开发者

Sorting all possible combinations

开发者 https://www.devze.com 2023-01-09 17:44 出处:网络
i´m trying to sort a list of combinations in a specific way. Consider the numbers 1-6 as teams, if every team can play on time against each other team we got this list as possible matches:

i´m trying to sort a list of combinations in a specific way. Consider the numbers 1-6 as teams, if every team can play on time against each other team we got this list as possible matches:

12 23 34 45 56
13 24 35 46 
14 25 36        
15 26           
16

So now what i want is something like "matchdays":

12    13    14    15    16
34    46    26    24    23
56    25    35    36    45

As you can see after each block every team has one game, two games, ...

I could´n get a algorithm to sort the list this from:

12 13 14 15 16 23 24 25 26 34 35 36 45 46 56

to

12 34 56 13 46 25 14 26 35 15 24 36 16 23 45

Additional: With odd team numbers the way to create matchdays gets even worse because you have to leave on team out for the d开发者_StackOverflow社区ay:

12 23 34 45
13 24 35    
14 25       
15  

12    23    14    24    25
34    45    35    15    13

In the first block 5 is not playing in the second block 1 ist not playing....

Thank you for any help or ideas regarding this problem in c# with .net 4 possibly using Linq to manipulate the list.

SOLUTION:

Round-robin tournament

http://en.wikipedia.org/wiki/Round-robin_tournament

Round Robin Tournament algorithm in C#


You dont really need to sort this (from what I can see).

All you need to do is create 'sets' of 3 items, where an item is {A,B} for the 2 teams.

So for the start, pick any random item (and remove from list of all combinations), then you have say: {1,3}. Then choose another random number (and remove) where {A,B} != 1 or 3 for both A and B. The last step is easy, as you only have 2 options left. Pick any valid option, remove from list. Repeat 4 more times.

0

精彩评论

暂无评论...
验证码 换一张
取 消