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

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

30.04.2021, 15:28. Показов 2025. Ответов 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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.04.2021, 15:28
Ответы с готовыми решениями:

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

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

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

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

3
3564 / 2505 / 1174
Регистрация: 14.08.2016
Сообщений: 8,214
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
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.05.2021, 15:22
Помогаю со студенческими работами здесь

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

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Использование связки C# и PHP в корпоративной разработке и микросервисной архитектуре
InfoMaster 16.01.2025
Введение в интеграцию C# и PHP В современной корпоративной разработке все чаще возникает потребность в создании гибких и масштабируемых решений, способных эффективно решать широкий спектр. . .
Как использовать Kerio дома для управления сетью и пользователями
InfoMaster 16.01.2025
Использование технологий для улучшения повседневной жизни стало неотъемлемой частью современного быта. Одной из таких технологий является Kerio — мощный инструмент для управления сетью и. . .
Есть ли будущее у DVD и Blu-ray?
InfoMaster 16.01.2025
В эпоху стремительного развития цифровых технологий и повсеместного распространения потоковых сервисов вопрос о будущем физических носителей информации становится все более актуальным. Особенно остро. . .
Как проводить научные вычисления на Python
InfoMaster 15.01.2025
Python стал одним из наиболее востребованных языков программирования в области научных вычислений благодаря своей простоте, гибкости и обширной экосистеме специализированных библиотек. Научные. . .
Создание игры типа Minecraft на PyGame/Python: пошаговое руководство
InfoMaster 15.01.2025
В данном руководстве мы рассмотрим процесс создания игры в стиле Minecraft с использованием библиотеки PyGame на языке программирования Python. Этот проект идеально подходит как для начинающих. . .
Как создать свою первую игру в стиле Doom на Unreal Engine
InfoMaster 15.01.2025
Разработка шутера от первого лица в стиле классического Doom представляет собой увлекательное путешествие в мир игрового программирования, где сочетаются творческий подход и технические навыки. . . .
Параллельное программировани­е: основные технологии и принципы
InfoMaster 15.01.2025
Введение в параллельное программирование Параллельное программирование представляет собой фундаментальный подход к разработке программного обеспечения, который позволяет одновременно выполнять. . .
Как написать микросервис на C# с Kafka, MediatR, Redis и GitLab CI/CD
InfoMaster 15.01.2025
В современной разработке программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот подход позволяет разделить сложную систему. . .
Что такое CQRS и как это реализовать на C# с MediatR
InfoMaster 15.01.2025
Концепция CQRS и её роль в современной разработке В современном мире разработки программного обеспечения архитектурные паттерны играют ключевую роль в создании масштабируемых и поддерживаемых. . .
Как настроить CI/CD с Azure DevOps
InfoMaster 15.01.2025
CI/ CD, или непрерывная интеграция и непрерывное развертывание, представляет собой современный подход к разработке программного обеспечения, который позволяет автоматизировать и оптимизировать процесс. . .
Как настроить CI/CD с помощью Jenkins
InfoMaster 15.01.2025
Введение в CI/ CD и Jenkins В современной разработке программного обеспечения непрерывная интеграция (CI) и непрерывная доставка (CD) стали неотъемлемыми элементами процесса создания качественных. . .
Как написать микросервис на Go/Golang с Kafka, REST и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru