Comments 8
Тривиально.
+2
Либо я не понял тонкостей вашей задачи, либо:
class Program
{
static void Main()
{
const int n = 4;
var listOfLists = new List<List>();
for (var i = 0; i < n; i++)
{
listOfLists.Add(new List());
}
var range = Enumerable.Range(0, n).ToList();
for (var i = 0; i < n; i++)
{
for (var j = 0; j < n; j++)
{
listOfLists[j].Add(range.Shuffle().Except(listOfLists[j]).First());
}
}
for (var i = 0; i < n; i++)
{
for (var j = 0; j < n; j++)
{
Console.Write(listOfLists[i][j] + " ");
}
Console.WriteLine();
}
Console.ReadLine();
}
}
public static class Extensions
{
public static List Shuffle(this IList collection)
{
var rng = new Random();
var n = collection.Count;
while (n-- > 1)
{
var k = rng.Next(n);
var value = collection[k];
collection[k] = collection[n];
collection[n] = value;
}
return collection.ToList();
}
}
class Program
{
static void Main()
{
const int n = 4;
var listOfLists = new List<List>();
for (var i = 0; i < n; i++)
{
listOfLists.Add(new List());
}
var range = Enumerable.Range(0, n).ToList();
for (var i = 0; i < n; i++)
{
for (var j = 0; j < n; j++)
{
listOfLists[j].Add(range.Shuffle().Except(listOfLists[j]).First());
}
}
for (var i = 0; i < n; i++)
{
for (var j = 0; j < n; j++)
{
Console.Write(listOfLists[i][j] + " ");
}
Console.WriteLine();
}
Console.ReadLine();
}
}
public static class Extensions
{
public static List Shuffle(this IList collection)
{
var rng = new Random();
var n = collection.Count;
while (n-- > 1)
{
var k = rng.Next(n);
var value = collection[k];
collection[k] = collection[n];
collection[n] = value;
}
return collection.ToList();
}
}
0
условий на самом деле больше:
1. в одном туре не должно быть, скажем, 5 матчей в москве
2. для всех команд должно по максимуму сохраняться чередование домашних и выездных матчей
1. в одном туре не должно быть, скажем, 5 матчей в москве
2. для всех команд должно по максимуму сохраняться чередование домашних и выездных матчей
0
Sign up to leave a comment.
Жеребьевка — нажатием кнопки