Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 24.09.2017
Сообщений: 21

Найти максимум в каждой строке матрицы

30.12.2017, 13:57. Показов 946. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дана целочисленная квадратная матрица А порядка N. Найти максимум в каждой строке. Если эти максимумы располагаются по одному в каждом столбце, то вывести соответствующее сообщение.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.12.2017, 13:57
Ответы с готовыми решениями:

В каждой строке матрицы найти последний четный элемент (считать, что такие элементы есть в каждой строке)
3.Задан двумерный массив (n × m) целых чисел. В каждом его строке найти последний парный элемент (считать, что парные элементы у каждой...

В массиве A(m,n) в каждой строке найти максимум и найти сумму максимальных
program Fed; uses crt; var a:array of integer; b:array of integer; k,minj,mini,min,maxj,maxi,max,o,j,i,m,n,e,e1:integer; begin ...

Найти в массиве максимум по каждой строке, а затем минимум из получившихся чисел
Вводится прямоугольный массив. Найти в нем максимум по каждой строке, а затем минимум из получившихся чисел. Динамическими массивами не...

4
 Аватар для Hitoku
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
30.12.2017, 21:22
Скорее всего можно проще, но в данный момент реализовать додумался только так
Pascal
1
2
3
4
5
6
7
begin
  var n := ReadlnInteger('N =');
  var a := MatrRandomInteger(n, n, -50, 50); a.Println;
  writelnformat('Максимумы: {0}{2}{1}', a.Rows.Select(v -> v.Max).JoinIntoString,
    a.Rows.Select(v -> v.Select((c, i) -> c = v.Max ? i : -1).Where(v -> v <> -1).First)
      .Distinct.Count = n ? 'По одному в каждом столбце' : 'Не в каждом столбце', NewLine);
end.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33376 / 21500 / 8236
Регистрация: 22.10.2011
Сообщений: 36,896
Записей в блоге: 11
31.12.2017, 13:06
Как вариант:
Pascal
1
2
3
4
5
6
7
8
begin
  var n := ReadlnInteger('N =');
  var a := MatrRandomInteger(n, n, -50, 50); a.Println;
  
  var (indices, maxs) := a.Rows.Select(v -> v.Numerate.MaxBy(x -> x.Item2)).UnZipTuple;
  WritelnFormat('Максимумы: {0}' + NewLine + '{1}', maxs.JoinIntoString, 
                indices.Distinct.Count = n ? 'По одному в каждом столбце' : 'Не в каждом столбце');
end.
Добавлено через 14 часов 32 минуты
На самом деле с постановкой задачи не так все просто. Что значит "по одному в каждом столбце"? Тогда для матрицы
Code
1
2
3
4
 -50   2  33 100
 120 120  45  13
 113 -29  19  44
  26  16 135  27
уже надо выводить "Не в каждом столбце"? Потому что в первом столбце есть два максимума. Но Максимум присутствует в каждом столбце матрицы. Если нужно проверить именно в каждом ли столбце присутствует максимум - то вот так:
Pascal
5
6
7
  var (indices, maxs) := a.Rows.Select(v -> (v.ToArray.IndexesOf(x -> x = v.Max), v.Max)).UnZipTuple;
  WritelnFormat('Максимумы: {0}' + NewLine + '{1}', maxs.JoinIntoString, 
                indices.SelectMany(v -> v).Distinct.Count = n ? 'В каждом столбце' : 'Не в каждом столбце');
, если нужно действительно проверять, чтобы мало того, что максимумы есть в каждом столбце, так еще и строго по одному - то решение будет другим... Вот таким, например:

Pascal
5
6
7
8
  var maxs := a.Rows.Select(v -> v.Max);
  WritelnFormat('Максимумы: {0}' + NewLine + '{1}', maxs.JoinIntoString, 
                a.Cols.Select(v -> v.Count(x -> maxs.Contains(x))).All(x -> x = 1) ? 
                  'В каждом столбце строго по одному максимуму' : 'Не по одному максимуму в каждом столбце');
0
 Аватар для Hitoku
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
31.12.2017, 13:22
volvo, скорее всего ваш вариант в двумя максимальными в столбце не будет соответствовать условию, т.к. нужно проверять не факт наличия максимального, а именно, что их количество. Если в столбце будет максимум второй и третьей строки, то он уже там не один и условие
Цитата Сообщение от Stezya Посмотреть сообщение
по одному в каждом столбце
не выполняется.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33376 / 21500 / 8236
Регистрация: 22.10.2011
Сообщений: 36,896
Записей в блоге: 11
31.12.2017, 14:20
Цитата Сообщение от Hitoku Посмотреть сообщение
не будет соответствовать условию
Условию чего? В задаче и сказано, чтобы это проверить. Вот я и уточняю, как именно надо проверять. Если строго по одному в столбце - то нижний вариант прекрасно работает.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.12.2017, 14:20
Помогаю со студенческими работами здесь

Найти в каждой строке матрицы количество элементов кратных пяти,и найти максимум
у меня есть задачка и я совсем не разберусь как именно её надо сделать, помогите пожалуйста:) P.S. заранее огромное спасибо:)

Массив: найти максимум и минимум в каждой строке.
Результат вывести на экран

Найти максимум в первой строке матрице и в последней строке матрицы
Ввести двумерный массив A (NxM) , вывести его. Найти максимум в первой строке матрице и в последней строке матрицы. На большее из этих...

Для каждой матрицы найти минимум и максимум
Весь модуль я сделал кроме одного действия. Пожалуйста помогите. Даны матрицы А,В,С элементы которых составлены с помощью ГСЧ.Для каждой...

Найти максимум каждой строки матрицы. Из полученных максимумов найти минимум
Здрасьте. Есть очередная задача, которую , как догадываетесь, я не могу решить. И вот, дан массив из 6 строк и 6 столбцов. Программа...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru