Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 01.04.2019
Сообщений: 4
1

Заполнение двумерного массива с неповторяющимися элементами строка-столбец

30.04.2021, 15:28. Показов 2017. Ответов 3

Author24 — интернет-сервис помощи студентам
Здравствуйте, прошу помощи, так как не силён в программировании. Сама задача : необходимо заполнить двумерный массив числами из списка.
Например нам дан список элементов:
C#
1
List<int> numbers = new List<int>() {0, 1, 2, 3, 4, 5};
Необходимо заполнить двумерный массив числами из этого списка так, чтобы не было повторяющихся элементов в строке и столбце(Смотри вложение)
Моя задумка:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 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) Столбец массива преобразуем в список и ищем повторы:
а) если повтор найден, то найти индекс строки и поменять местами с элементом, которого нет в списке
Изображения
 
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.04.2021, 15:28
Ответы с готовыми решениями:

Заполнение двумерного массива случайными неповторяющимися значениями
Здравствуйте, подскажите пожалуйста, как заполнить двумерный массив случайными неповторяющимися...

Заполнение ListBox2 неповторяющимися из элементами ListBox1
Из списка ListBox1 выбранные элементы переносятся в список ListBox2 с помощью кнопки AddButton...

Заполнение двумерного массива элементами одномерного
Здравствуйте, подскажите, есть эдиты, есть кнопочка, при нажати на которую из эдитов данные должны...

Заполнение двумерного массива уникальными случайными элементами
то есть не повторяющимися элементами. буду рада любой помощи

3
3564 / 2505 / 1174
Регистрация: 14.08.2016
Сообщений: 8,213
30.04.2021, 16:07 2
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        public static List<T> Shift<T>(List<T> lst, int shift = 1) => lst.Skip(1).Append(lst.First()).ToList();
 
        static void Main(string[] args)
        {
            List<int> numbers = new List<int>() { 0, 1, 2, 3, 4, 5 };
            var arr = new int[numbers.Count(), numbers.Count()];
            for (int i = 0; i < arr.GetLength(0); i++)
            {
                for (int j = 0; j < arr.GetLength(1); j++)
                {
                    Console.Write((arr[i, j] = numbers[j]) + " ");
                }
                numbers = Shift(numbers);
                Console.WriteLine();
            }
        }
если сделать не двумерный, а ступенчатый, можно еще и строки перемешать
1
0 / 0 / 0
Регистрация: 01.04.2019
Сообщений: 4
01.05.2021, 20:23  [ТС] 3
C#
1
2
3
4
public static List<T> Shift<T>(List<T> lst, int shift = 1)
        {
            lst.Skip(1).Append(lst.First()).ToList();
        }
что-то не так в этой строке, а именно метод Append, чем его можно заменить?
0
0 / 0 / 0
Регистрация: 01.04.2019
Сообщений: 4
04.05.2021, 15:22  [ТС] 4
Diamante, Хэлп)
0
04.05.2021, 15:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.05.2021, 15:22
Помогаю со студенческими работами здесь

Как правильно реализовать заполнение двумерного массива элементами
Здравствуйте! Имеется проблема такого рода: Имеется 5-6 классов, с базовым классом и 5-...

Заполнение и вывод двумерного массива случайными числами (выводится только первая строка)
Не могу понять, что я делаю не так. Выводятся значения только первой строки. // Example program...

Заполнение массива неповторяющимися числами
всем привет! как нада сделатъ чтоб не был одинаковие значение в массивe? using System; using...

Заполнение массива неповторяющимися случайными числами
Добрый день. Подскажите как двумерный(одномерный) массив заполнить случайными числа в диапазоне от...

Заполнение массива неповторяющимися случайными числами
А как тоже самое провернуть с PascalABC и FreeBasic? Заранее спасибо.

Заполнение массива неповторяющимися случайными числами
А как тоже самое провернуть с PascalABC и FreeBasic? Заранее спасибо.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru