0 / 0 / 0
Регистрация: 06.11.2012
Сообщений: 5
|
||||||
1 | ||||||
Найти ошибку в методе поиска локального минимума в двухмерном массиве08.11.2012, 20:27. Показов 1272. Ответов 7
Метки нет (Все метки)
Задача по поиску локального минимума в двумерном массиве. Локальным минимумом считается значение, которое строго меньше всех его соседей. Проверку на локальный минимум реализовал в отдельном методе, вот он:
Кликните здесь для просмотра всего текста
В результате выходит совсем не то. Пожалуйста, помогите разобраться, где я накосячил. Не ругайте особо, самообучаюсь.
0
|
08.11.2012, 20:27 | |
Ответы с готовыми решениями:
7
Найти номер первого локального минимума в массиве Найти номер его первого локального минимума в массиве Метод для поиска локального минимума в классе Array Поиск максимума и минимума в двухмерном массиве textbox |
179 / 48 / 6
Регистрация: 23.06.2011
Сообщений: 248
|
|
09.11.2012, 00:53 | 2 |
Ты сам себя запутал.
Твоя ошибка в том, что ты не понял, зачем именно создал метод. Судя по возвращаемому значению и аргументам, ты передаешь позицию в массиве и проверяешь, является ли она локальным минимумом. Это делается в одну строчку с кучей && Представь морской бой. Ты стреляешь в ячейку и просто проверяешь все остальные вокруг нее. Так как у нас есть условия краев и углов, у тебя будет 4 условия проверки углов и 4 условия проверки краев + 1 условие проверки середины. Итого - 9 строчек. В твоем же коде ты зачем-то делаешь кучу переборов значений каких-то, используешь кучу лишних переменных, условий.. в общем, голову сломаешь ) Код должен быть как можно более лаконичным. Не используй много лишних переменных, не используй непонятных названий, с другой стороны, не экономь на переменных. Все в меру. Не экономь на памяти, использование sbyte никому лучше не сделает, чтобы тебя не мучила жадность и совесть - компилятор все равно переделает их скорее всего в int. Четко понимай, что ты реализуешь в том или ином методе. Не пытайся запихать все в один метод, но и не создавай кучу новых ради выполнения одной операции. Очень советую не отказываться от бумаги с ручкой и рисовать алгоритмы и блок-схемы. Это очень помогает. Поначалу рисуй максимально подробно. Если ты можешь без проблем написать реализацию какого-то блока - значит, ты понял, из чего он состоит. И наоборот, если ты не видишь необходимости расписывать какое-либо действие более подробно - значит, ты понял этот кусок. Как-то так. В твоем случае логика такова: в основной программе перебираем поэлементно массив и для каждого элемента вызываем метод проверки.
1
|
0 / 0 / 0
Регистрация: 06.11.2012
Сообщений: 5
|
|
09.11.2012, 17:56 [ТС] | 3 |
Спасибо за советы. Я пытался сделать универсальное решение, а получилась какая-то сборная солянка. Попробую еще раз, ориентируясь вашим ценным советам. После прочтения Вашего ответа, появились некоторые ценные мысли.
0
|
Master of Orion
|
|
09.11.2012, 20:05 | 4 |
smth, а если внезапно надо будет учитывать не только соседние точки, но и точки через них (то есть не только точки, окаймляющие фигуру "морского боя", но и точки, окаймляющие это окаймовку), то дописывать еще 100500 условий? Автор все правильно делал, а вы его только путаете.
Jabrobaka, С другой стороны, идея более-менее, а вот реализация хромает: куча лишних переменных, к тому же нет смысла использовать sbyte, переменная все равно занимает число байт, кратное четырем, если только она не является полем класса/структуры (так называемое выравнивание). Напишите, чего вы хотите (в чем именно заключается условие локального минимума), мб найдем чем помочь.
1
|
0 / 0 / 0
Регистрация: 06.11.2012
Сообщений: 5
|
|
09.11.2012, 22:12 [ТС] | 5 |
сбайт делал потому, что в паре мест было отрицательное значение -1, не помню уже где, решил все байты в сбайты сделать, чтобы ошибок не было. Переборщил, конечно.
А моя каша получилась как раз из похожих Ваших мыслей, которые Вы изложили в ответе к smth. Нужно решить задачу: "Дана матрица размера M x N. Элемент называется локальным минимумом, если он меньше всех окружающих его элементов. Заменить все локальные минимумы данной матрицы на 0."
0
|
Master of Orion
|
||||||
09.11.2012, 22:38 | 6 | |||||
Jabrobaka, ну например так:
1
|
0 / 0 / 0
Регистрация: 06.11.2012
Сообщений: 5
|
||||||
09.11.2012, 22:45 [ТС] | 7 | |||||
0
|
Master of Orion
|
|
09.11.2012, 22:49 | 8 |
Jabrobaka, почитайте про обобщенные классы и методы:
http://msdn.microsoft.com/ru-r... aeb7t.aspx Добавлено через 1 минуту http://msdn.microsoft.com/ru-r... a29h6.aspx
1
|
09.11.2012, 22:49 | |
09.11.2012, 22:49 | |
Помогаю со студенческими работами здесь
8
Организация поиска в списке. Исправить ошибку в методе поиска Написать процедуру, которая находит номер k последнего локального минимума в массиве вещественных чисел Найти номер первого локального минимума массива Найти номер первого локального минимума массива Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Блоги программистов | |||||
Обновление сайта www.historian.by
Reglage 05.01.2025
Обещал подвести итоги 2024 года для сайта. Однако начну с того, что изменилось за неделю. Добавил краткий урок по последовательности действий при анализе вредоносных файлов и значительно улучшил урок. . .
|
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
|
Модель полного двоичного суматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list):
s=^y]
p=x and y
for i in range(1,len(x)):
s. append((x^y)^p)
p=(x and y)or(p and (x or y))
return s
x=list()
y=list()
|
Это мы не проходили, это нам не задавали...(асихронный счётчик с управляющим сигналом задержки).
Hrethgir 04.01.2025
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
|
Руководство по созданию бота для Телеграм на Python
IT_Exp 04.01.2025
Боты для Телеграм представляют собой автоматизированные программы, которые выполняют различные задачи, взаимодействуя с пользователями через интерфейс мессенджера. В данной статье мы рассмотрим,. . .
|
Применение компонентов PrimeVue в Vue.js 3 на TypeScript
BasicMan 04.01.2025
Введение в PrimeVue и настройка окружения
PrimeVue представляет собой мощную библиотеку компонентов пользовательского интерфейса для Vue. js 3, которая предоставляет разработчикам богатый набор. . .
|
Как стать Senior developer
cpp_developer 04.01.2025
В современной индустрии разработки программного обеспечения позиция Senior Developer представляет собой не просто следующую ступень карьерной лестницы, а качественно новый уровень профессионального. . .
|
Что известно о дате выхода Windows 12 и чего от нее ждать
IT_Exp 04.01.2025
В мире технологий постоянно происходят изменения, и операционные системы не являются исключением. Windows 11, выпущенная в октябре 2021 года, принесла множество инноваций и улучшений, но. . .
|
Что новенького в .NET Core 9
Programming 04.01.2025
Обзор ключевых изменений в . NET Core 9
Платформа . NET Core продолжает активно развиваться, и версия 9 представляет собой значительный шаг вперед в эволюции этой технологии. Новый релиз. . .
|
Инструкция по установке python3.13.1 в Debian 12
AlexSky-coder 03.01.2025
sudo apt update
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev
wget. . .
|
Затестил триггеры. архив проекта прилагаю с GOA файлами в настройках архиватора проектов.
Hrethgir 03.01.2025
В этот раз нет закольцованности, потому что от неё только глюки, как я понял, логика не вырезанная. Триггеры очень быстрые если верить измерениям с помощью анализатора от Gowin.
Есть ещё регистры,. . .
|
Python в помощь DevOps
IT_Exp 03.01.2025
Причины использования Python в работе DevOps
Python стал неотъемлемой частью мира DevOps, и это не случайно. Этот язык программирования обладает множеством преимуществ, которые делают его. . .
|