|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
06.04.2023, 13:25 | #1 |
Пользователь
Регистрация: 05.03.2023
Сообщений: 14
|
дана целочисленная матрица A(M,N) продублировать в матрице каждый столбец, являющийся перестановкой натуральных чисел от 1 до M
Код:
Последний раз редактировалось BDA; 06.04.2023 в 20:27. |
06.04.2023, 14:29 | #2 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
Продублировав столбец вы его скопировали на j+1 место, но на следующей итерации цикла вы будете проверять как раз j+1 столбец, а он тот же самый, что и предыдущий.
Выход: разверните внешний цикл и перечисляйте столбцы в обратном порядке. Код:
|
06.04.2023, 15:47 | #3 |
Форумчанин
Регистрация: 17.06.2012
Сообщений: 974
|
чтоб определить "являющийся перестановкой натуральных чисел от 1 до M"
думаю нужен паттерн выяснения все ли числа в столбце например присвоить 2-ичные шифры и тогда сумма даст константу ведь числа будут в столбце по 1 разу типа сумма 2^ от 1 до М пример: все ли числа подряд от 1 до 5 перемешаны среди 3 1 4 5 2 = 2^3 +2^1 +2^4 +2^5 +2^2 = 62 тогда общая формула =2^(M+1)-2 вариант сложения флагов плох возможностью посчитать просто количество вместо точно всех подряд и тогда возможно перемножать флаги тогда любой пробел цепочки покажет признак 0
Случайные и Массивы https://programmersforum.ru/showthread.php?t=344371 Учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=5 ничего нерекомендую
Последний раз редактировалось сфинкс; 07.04.2023 в 01:31. |
06.04.2023, 22:48 | #4 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,330
|
Для проверки "являются числа столбца перестановкой натуральных чисел от 1 до M" можно создать массив размером M.
Массив очистить и заполнять элемент единицей, используя число столбца как индекс элемента массива. Если в процессе заполнения индекс выходит за границу массива, то "не являются". После заполнения проверить, что все элементы равны единице. Если не так, например, элемент равен нулю или больше единицы, то "не является".
Как-то так, ...
|
06.04.2023, 23:09 | #5 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,341
|
ViktorR, можно и в процессе заполнения проверять. Если перед увеличением в элементе не ноль, то "не является". Хотя не знаю, как окажется быстрее. Или использовать массив boolean размера M с флажками. Или использовать множества - В PascalABC.NET можно использовать любой тип в качестве базового.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ошибка Pascal ABC.NET. Дана последовательность натуральных чисел, Удалить из последовательности простые числа, а среди оставшихся продублировать числа... | n3v3rlucky | Помощь студентам | 1 | 30.11.2017 10:44 |
Верно ли я решил задачу: Дана матрица nxm действительных чисел. Найти столбец матрицы с минимальным произведением элементов. | Тырин Артем | Помощь студентам | 1 | 18.06.2016 13:00 |
Дана динамическая целочисленная матрица. | D92 | Помощь студентам | 1 | 19.03.2013 21:22 |
Дана целочисленная матрица | Катюшка_92 | Помощь студентам | 6 | 03.06.2010 09:20 |
Дана целочисленная квадратная матрица... | kitty | Помощь студентам | 1 | 05.12.2007 07:40 |