Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Задачка - поиск локальных минимумов

Сообщения:  [1-8] 

 
 автор: Mauri   (25.12.2005 в 18:25)   письмо автору
 
   для: Guest   (21.11.2005 в 17:23)
 

а вот вы бы целиком задачи выкладывали..почему тока куски?=)

зы на с++

   
 
 автор: Guest   (21.11.2005 в 21:06)
 
   для: Киналь   (21.11.2005 в 19:38)
 

Ну на паскале и я в своё время это считал, а тут захотелось на php.Вообще енту задачу предлагают для решения на C++ в качестве домашнего задания для студентов фак-та ПМиК ТвГУ.

   
 
 автор: cheops   (21.11.2005 в 21:03)   письмо автору
 
   для: Guest   (21.11.2005 в 17:23)
 

Матрица маленькая не развернуться :))), если матрица огромная и многомерная такие задачи решают при помощи градиентного спуска со случайным выбором начальной позиции. Причём в реальных условиях последнее часто не требуется, так как заранее известно что ищется...

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

Да и от реальной задачи часто зависит - если матрица набита случайным образом - одно дело, если это функция - другое... Если резкие скачки или поверхность непрерывная... Абстрактный алгоритм для произвольной матрицы будет не лучшим решением для какого-то специального случая.

   
 
 автор: Киналь   (21.11.2005 в 19:38)   письмо автору
 
   для: Guest   (21.11.2005 в 17:23)
 

Можно попробовать перебирать строки - искать минимум каждой и уже его проверять на соседей. Если дело происходит не в Паскале, то это можно сделать встроенной функцией=)

Ну а со вторым пунктом вообще просто - 2 вложенных цикла, типа

For i:=1 to n do
 For j=i+1 to n do



Ох, сколько этих матриц на Паскале считали=)))

   
 
 автор: Guest   (21.11.2005 в 18:33)
 
   для: Axxil   (21.11.2005 в 17:59)
 

Ну да вот, я тоже тупо обходил все элементы, но это мне не очень понравилось, а вдруг будет задача в которой необходимо сравнивать не просто элемент с соседями, а еще с 20 (например) элементами? Это уже долго больно писать и тупо... :) А главная диагональ строится из левого верхнего угла в правый нижний. Второстепенная диагональ - из верхнего правого в нижний левый.

   
 
 автор: Axxil   (21.11.2005 в 17:59)   письмо автору
 
   для: Guest   (21.11.2005 в 17:23)
 

Давайте сначала алгоритм обсудим.
1.Первое что приходит на ум обойти все элементы и тупо искать этот самый минимум поочереди сравнивая с соседними элементами.
Запрограмировать это 10 минут
Но подозреваю что есть более элегантный алгоритм.
(Честно: думал 10 сек :) )
2. А главная диагональ строится из какого угла матрицы?

   
 
 автор: Akira   (21.11.2005 в 17:36)   письмо автору
 
   для: Guest   (21.11.2005 в 17:23)
 

Даже пытаться не буду :)) Меня от одного слова матрица трясет!

   
 
 автор: Guest   (21.11.2005 в 17:23)
 
 

Любите решать задачи по программированию? :) Вообщем предлагаю маленькую и простенькую задачку. Я ее решил, но уж больно у меня код некрасивый получился. Потому и хочу чтоб вы(посетители форума) тоже попробовали, может кто-нибудь ее решит идеально(или близко :)) Я бы с удовольствием посмотрел красивое решение
Задача:
Элемент матрицы называется локальным минимумом, если он строго меньше всех имеющихся у него соседей
1) Подсчитать количество локальных минимумов заданной матрицы 10 на 10 (Можно матрицу зарандомить)
2) Найти сумму модулей элементов, расположенных выше главной диагонали.

   

Сообщения:  [1-8] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования