Здравствуйте, прошу помощи, так как не силён в программировании. Сама задача : необходимо заполнить двумерный массив числами из списка.
Например нам дан список элементов:
Необходимо заполнить двумерный массив числами из этого списка так, чтобы не было повторяющихся элементов в строке и столбце
Моя задумка:
В этом куске кода я применяю перестановку к списку и заполняю строки этой перестановкой, но вот проблема, числа в столбцах иногда повторяются. Подскажите как можно от этого избавиться.
P.S. У меня есть предположение как уйти от этого, но я не знаю как написать код.
Сам план:
1) Заполняем строки массива перетасованным списком
2) Столбец массива преобразуем в список и ищем повторы:
а) если повтор найден, то найти индекс строки и поменять местами с элементом, которого нет в списке
Например нам дан список элементов:
C#:
List<int> numbers = new List<int>() {0, 1, 2, 3, 4, 5};
Моя задумка:
C#:
int[,] nums = new int[n,n];
for (i = 0; i < n; i++)
{
for (int p = numbers.Count - 1; p >= 1; p--)
{
int k = r.Next(p + 1);
// обменять значения numbers[j] и numbers[i]
var temp = numbers[k];
numbers[k] = numbers[p];
numbers[p] = temp;
}
for (j = 0; j < n; j++)
{
nums[i, j] = numbers[j];
Console.Write("{0,3}", nums[i, j]);
}
Console.WriteLine();
}
P.S. У меня есть предположение как уйти от этого, но я не знаю как написать код.
Сам план:
1) Заполняем строки массива перетасованным списком
2) Столбец массива преобразуем в список и ищем повторы:
а) если повтор найден, то найти индекс строки и поменять местами с элементом, которого нет в списке