На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! правила раздела Алгоритмы
1. Помните, что название темы должно хоть как-то отражать ее содержимое (не создавайте темы с заголовком ПОМОГИТЕ, HELP и т.д.). Злоупотребление заглавными буквами в заголовках тем ЗАПРЕЩЕНО.
2. При создании темы постарайтесь, как можно более точно описать проблему, а не ограничиваться общими понятиями и определениями.
3. Приводимые фрагменты исходного кода старайтесь выделять тегами code.../code
4. Помните, чем подробнее Вы опишете свою проблему, тем быстрее получите вразумительный совет
5. Запрещено поднимать неактуальные темы (ПРИМЕР: запрещено отвечать на вопрос из серии "срочно надо", заданный в 2003 году)
6. И не забывайте о кнопочках TRANSLIT и РУССКАЯ КЛАВИАТУРА, если не можете писать в русской раскладке :)
Модераторы: Akina, shadeofgray
  
> Точки в прямоугольнике , Задача на максимум
    Вводится три числа: A, B, N. (A, B - действительные числа, N - целое больше 2)
    Надо расположить в прямоугольнике AxB N точек так, чтобы суммарное расстояние между каждыми двумя точками было бы максимальным.
    Для примера, если A = 10, B = 5 и N = 2, то точки можно расположить в (0, 0) и (10, 5).
    Если 4 точки, то они размещаются в вершинах прямоугольника.
      самый большой обход по периметру ?
        По-моему, вообще все точки в углах надо поставить smile.gif В как можно более противоположных smile.gif Ну может одну еще в центре... Хотя нафих она там нужна smile.gif
        Сообщение отредактировано: Visitor -
          мож и не точное решение, а хотя бы приблизительное. надо взять точки и сделать так, чтобы они отталкивались по закону кулона, а двигались по закону ньютона с трением, а от стенок отражались. когда устаканится - ето и будет если не наиболее оптимальное, то довольно хорошее решение.

          зачем думать, когда можно численно оптимизировать?? smile.gif
            ИМХО все равно расставлять надо буквой "зю" -- верхлев-нижправ-нижлев-верхправ-верхлев-нижправ и т.д.
              интерестная задача. из серии максимизации фукнционала.
              можно так сделать:
              написать прогу, которая будет для заданных парамов перебирать все возможные положения точек (с некоторым шагом) и выдавать оптимальное расположения.
              посмотреть эти расположения на 2, 3, 4, 5, ... n точек и сделать вывод о тенденции (если она будет)
                Цитата
                буквой "зю"

                а чойто за буква?
                Цитата
                написать прогу, которая будет для заданных парамов перебирать все возможные положения точек (с некоторым шагом) и выдавать оптимальное расположения.

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

                  Да, интересная, олимпиадная.
                  Идея wormball-а интересная и весьма перспективная, только как ее реализовать?
                  И не получится ли это "жадное" решение?
                  Цитата
                  можно отталкиваться не по кулону, а высчитывать градиент етого функционала. кстати функционал будет с корнями, так что аналитически врядли можно решить

                  Тогда приближенно! Вообще, в каую сторону копать-то?
                    Цитата
                    tserega, 26.11.03, 16:34
                    Идея wormball-а интересная и весьма перспективная, только как ее реализовать?

                    категорически не согласен. идея самая тупая, какая только может прийти на ум. реализовывается опять же проще простого, я ето дело по меньшей мере один раз реализовывал. подучи механику и вперёд smile.gif
                    делаешь два массива точек - координат и скоростей. на каждом шагу

                    dx=dt*vx всмысле x[i]:=x[i]+vx[i]*dt для всех i, dt - временной шаг
                    dy=dt*vy

                    dvx=dt*((dF/dx)-k*vx) k - коеффициент трения
                    dvy=dt*((dF/dy)-k*vy)

                    отталкиваться от стенок я думаю понятно как.

                    производную функционала сам найдёшь??
                      Цитата
                      производную функционала сам найдёшь??

                      Постараюсь. В принципе, все понятно. Если что, спрошу конкретнее.
                      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                      0 пользователей:


                      Рейтинг@Mail.ru
                      [ Script execution time: 0.0678 ]   [ 15 queries used ]   [ Generated: 6.10.26, 00:43 GMT ]