0 / 0 / 0
Регистрация: 19.05.2016
Сообщений: 4
|
|
1 | |
Найти все седловые точки матрицы02.06.2016, 23:44. Показов 11410. Ответов 21
Метки нет Все метки)
(
Найти все седловые точки матрицы A(n×m). Матрица имеет седловую
точку ij a , если ij a является минимальным элементом в i −ой строке и максимальным элементом в j − ом столбце.
0
|
02.06.2016, 23:44 | |
02.06.2016, 23:44 | |
Ответы с готовыми решениями:
21
Найти седловые точки матрицы
|
![]() |
||||||||||||||||
04.06.2016, 15:29 | 2 | |||||||||||||||
![]() Решение
сколько не видел кода по данной задаче, но большинство из них либо слишком сложно, либо неправильно. Сам когда-то делал эту задачу, но тоже неправильно. Наконец всё-таки удалось сделать правильный вариант(если нет, то пусть поправят старшие товарищи)):
Оптимизированный вариант:
Добавил определение матрицы неимеющей седловых точек:
0
|
738 / 543 / 416
Регистрация: 17.09.2015
Сообщений: 1,601
|
||||||
04.06.2016, 15:52 | 3 | |||||
CoderHuligan, переменная maxc является лишней.Достаточно проверки minr по ее столбцу,если любой элемент больше чем minr,то break;если нет таких-вывод на экран
Добавлено через 11 минут как вариант
0
|
738 / 543 / 416
Регистрация: 17.09.2015
Сообщений: 1,601
|
|
04.06.2016, 16:02 | 5 |
CoderHuligan,
![]() ![]()
0
|
![]() |
||||||
04.06.2016, 16:54 | 6 | |||||
LFC, если матрица такая:
Добавлено через 58 секунд В моём коде? Надо проверить. Вроде всё работает.
0
|
738 / 543 / 416
Регистрация: 17.09.2015
Сообщений: 1,601
|
|
04.06.2016, 17:13 | 7 |
не,я про задание вообще
Добавлено через 8 минут упс,если это про мой код,то я забыл инициализировать x и y.В строке 11 надо добавить x = 0, y = 0,
0
|
![]() |
|||||||||||
04.06.2016, 18:07 | 8 | ||||||||||
Иницилизировал. Но выводит всего одну седловую, хотя их там 3 штуки. В том-то и дело, все одинаковые наибльшие элементы столбцов, которые соответствуют наименьшим элементам рядов тоже являются седловыми точками. В этом-то и закавыка на которуй многие спотыкаются. Поэтому в матрице :
Добавлено через 36 минут Вариант с рэндомными числами
1
|
738 / 543 / 416
Регистрация: 17.09.2015
Сообщений: 1,601
|
||||||
04.06.2016, 18:14 | 9 | |||||
CoderHuligan, [1][0] не может быть,ибо в строке есть меньшее значение
проблему решил:x и y надо инициализировать нулевым элементом строки перед каждой итерацией второго(вложенного) цикла
1
|
738 / 543 / 416
Регистрация: 17.09.2015
Сообщений: 1,601
|
|
04.06.2016, 18:44 | 11 |
CoderHuligan, а по рандомным я че хотел сказать-генератор выводит числа более менее равномерно из заданного промежутка,поэтому вероятность что наименьший в строке окажется наибольшим в столбце крайне мала. при маленьком диапазоне значений и маленьком размере матрицы вероятность повыше,а вот попробуйте матрицу 12х12 и диапазон -50+50 -можно до утра просидеть за этим занятием пока найдется "седло"
![]()
0
|
![]() |
|
04.06.2016, 18:52 | 12 |
Да. Я это тоже заметил. Но, вобщем, искать седловые с рэндомными числами бессмысленно, разве что для развлечения. Обычно системы определения седловых точек используются в таких областях, где априори они существуют, например в геодезии.
1
|
10 / 6 / 4
Регистрация: 08.04.2020
Сообщений: 61
|
||||||
03.02.2021, 16:18 | 13 | |||||
Если кому то на c++ надо с выводом координат, то вот:
0
|
2483 / 1147 / 707
Регистрация: 25.04.2016
Сообщений: 3,294
|
||||||
04.02.2021, 08:39 | 14 | |||||
Кликните здесь для просмотра всего текста
Вообще-то только 2.. Во второй строке минимальный элемент равен 1
0
|
![]() |
|
04.02.2021, 09:46 | 15 |
Вообще-то вы путаете нахождение минимального элемента с седловой точкой, так как седловая точка это:
"есть элемент матрицы, который одновременно является минимальным элементом в соответствующей строке матрицы и максимальным элементом в соответствующем столбце матрицы. "
0
|
2483 / 1147 / 707
Регистрация: 25.04.2016
Сообщений: 3,294
|
|
04.02.2021, 12:07 | 16 |
и как же тогда программа работает? Вот ведь магия.
Сначала на алгоритм посмотрите. Минимальным элементом во второй строке является 1, однако максимальным в соответствующем ей столбце является 6, таким образом во второй строке нет седловых точек и из перечисленных вами выпадает вторая: [1][0]=2, и остаются только 2 седловые точки, вместо трех.
0
|
![]() |
|
04.02.2021, 12:26 | 17 |
Сейчас проверил свой код: все правильно выдает - 2 точки.
Добавлено через 9 минут stake-k26, - я ошибся не в своем коде - он правилен, но в ручном анализе, - недоглядел, что там действительно третья лишняя.
0
|
10 / 6 / 4
Регистрация: 08.04.2020
Сообщений: 61
|
|
04.02.2021, 12:56 | 18 |
Моё решение, 100 баллов проходит)
Добавлено через 1 минуту Моё работает, 100 баллов.
0
|
10 / 6 / 4
Регистрация: 08.04.2020
Сообщений: 61
|
|
04.02.2021, 13:11 | 20 |
Перепиши просто, идея то одинаковая.
0
|
04.02.2021, 13:11 | |
04.02.2021, 13:11 | |
Помогаю со студенческими работами здесь
20
Для матрицы размером NxM(N и M пользователь вводит вручную) вывести на экран все седловые точки В матрице найти все седловые точки, либо установить, что таких точек нет
Определить седловые точки матрицы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
![]() |
Опции темы | |
|
Новые блоги и статьи
![]() |
||||
Комментарии в JSON
hw_wired 10.02.2025
JSON - текстовый формат обмена данными, построенный на основе синтаксиса JavaScript. Этот формат отличается простотой, читаемостью и широкой поддержкой во всех современных языках программирования. . . .
|
Перезаписываем локальные файлы с помощью git pull
hw_wired 10.02.2025
Git pull - незаменимая команда для синхронизации локального репозитория с удаленным. При работе над проектом в команде разработчиков часто возникает необходимость получить актуальные изменения,. . .
|
Оператор --> в C++
hw_wired 10.02.2025
Оператор --> (называемый "spaceship operator" или оператор космического корабля) - важное нововведение в стандарте C++20, упрощающее реализацию операций сравнения в пользовательских типах данных. . . .
|
Отмена git add до коммита
hw_wired 10.02.2025
Git предлагает несколько методов для отмены индексации файлов перед созданием коммита. Разработчики часто сталкиваются с ситуацией, когда нужно убрать файлы из индекса, не теряя внесенные изменения в. . .
|
Типы MIME в JSON: что и когда использовать в REST API
hw_wired 10.02.2025
MIME-типы играют ключевую роль в современных веб-приложениях, особенно в контексте REST API и микросервисной архитектуры. Они определяют формат передаваемых данных между клиентом и сервером, что. . .
|
Переименование локальной ветки Git
hw_wired 10.02.2025
Git предлагает систему управления версиями, где ветки играют ключевую роль в организации разработки. Ветки позволяют изолировать изменения кода, экспериментировать с новыми функциями и поддерживать. . .
|
Удаление элемента из массива в JavaScript
bytestream 10.02.2025
В JavaScript массивы - это упорядоченные наборы данных, которые часто требуют модификации, включая удаление элементов. Самый распространенный метод для этой задачи - splice(). Этот метод позволяет не. . .
|
Что значит yield в Python
bytestream 10.02.2025
Ключевое слово yield в Python создает генераторную функцию - особый тип функции, которая возвращает итератор. В отличие от обычных функций, использующих return для возврата значения и завершения. . .
|
Чем отличаются git pull и git fetch
bytestream 10.02.2025
Git предоставляет множество команд для работы с удаленными репозиториями, среди которых особое место занимают git fetch и git pull. Эти команды помогают синхронизировать локальный репозиторий с. . .
|
Как удалить ветку Git в локальном и удаленном репозитории
bytestream 10.02.2025
Git предлагает развитую систему ветвления, позволяющую разработчикам создавать параллельные версии кода для различных задач. Ветка в Git - это легковесный указатель на определенный коммит, который. . .
|