|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Не совсем арифметическая прогрессия (помогите с решением задачи)
Геодезист
Сибирь (где медведи по улицам ходят)
Регистрация: 12.03.2009
Сообщений: 860
|
||
Просмотров: 7958
|
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
![]() |
В такой постановке задача имеет много решений (помоему n/2), например
5->4.75-4.5-4.25-4.0-3.75-3.5-3.75->4 и сводится и линейной интерпетации, путем отброса части 4.0-3.75-3.5-3.75->4 в моем решении и 4.0-3.5-3.0-2.5-3.0-3.5->4 в вашем вру. путь тоже задан - тогда перебираем решения и выбираем нужное Последний раз редактировалось zamtmn, 21.11.2012 в 11:08. |
|||
![]() |
|
||||
Не, не она
![]() Цитата:
5-0.5 -> 4.5-0.5 -> 4-0.5->3.5-0.5->3.0-0.5->2.5+0.5->3.0+0.5->3.5+0.5->4
__________________
Почему все вдруг становятся умными, когда уже не надо? |
||||
![]() |
|
||||
Жёстко задана сумма шагов (Расстояние S)
Хорошо, 2 очень взаимосвязанные арифметические прогрессии. Дальше как?
__________________
Почему все вдруг становятся умными, когда уже не надо? |
||||
![]() |
|
||||
Что-то я так и не уловил суть этого варианта "научного тыка"
__________________
Почему все вдруг становятся умными, когда уже не надо? |
||||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
![]() |
Для упрощения буду считать что начальное значение всегда больше конечного. Для наглядности прилагаю график величины шага от номера шага.
Предлагаю разбить график на 2 части: до тоги как величина шага пересекает b и и после. это пересечение возможно только за четное число шагов (включая 0) до последнего шага, отсюда количество n/2 вариантов для перебора. первая часть графика - линейная интерпретация (или арифметическая прогрессия) от a к b, вторая - состоит из 2х интерпретаций от b к b по первой части находим x, считаем сумму - если не совпало - сдвигаем точку пересечения и повторяем upd: можно попробовать выразить путь от величины шага (x) и номера шага пересечения(n1) и решить систему уравнений путь(x,n1) = S и a-n1*x=b (нпервый член прогрессии от a к b = b) тогда перебирать не понадобится Последний раз редактировалось zamtmn, 21.11.2012 в 14:07. |
|||
![]() |
|
||||
Вода - моя работа Регистрация: 10.11.2009
Санкт-Петербург
Сообщений: 3,638
|
Вывел уравнение для x, но больно оно заморочное получилось, нет времени решать, дам наводку.
Я ввёл два новых неизвестных Х1 - количество шагов до смены знака, Х2 - количество шагов после смены знака Вышла система из 3-х уравнений с 3-мя неизвестными Х1+Х2=n 'Это понятно. (n-X2)x-X2*x-x=a-b 'Вывел сумму всех шагов через изменение результата X1*(2a-X1*x-x)/2+X2*(a-X1*x+b)/2=S 'вывел расстояние через сумму n первых членов арифметической прогрессии Система решается, но заморочно, может дома возьмусь.
__________________
Нерешаемых проблем не бывает. |
|||
![]() |
|
||||
Регистрация: 16.08.2006
Санкт-Петербург
Сообщений: 508
![]() |
Думаю, код на питоне вполне сойдёт за псевдокод, по этому алгоритм должен быть понятен.
Скорость подбора шага можно увеличить, если использовать не тупой перебор, а двоичный поиск Решал рекурсивно Код:
Последний раз редактировалось bargool, 21.11.2012 в 17:04. |
|||
![]() |
|
||||
Цитата:
![]() bargool, zamtmn, к сожалению, метод подбора это как-то не по научному ![]() И как оказалось, пока вполне достаточно равного шага, тупо пут (S) разделить на количество шагов (n)
__________________
Почему все вдруг становятся умными, когда уже не надо? |
||||
![]() |
|
||||
YngIngKllr Регистрация: 29.03.2005
СПб
Сообщений: 12,968
|
Disney
Тут наверное больше похоже на логистическую задачу.... Может по искать алгоритмы в этом направлении, потому как перебор не такой уж и большой получается..
__________________
Работаю за еду. Working for food. Für Essen arbeiten. العمل من أجل الغذاء Працую за їжу. |
|||
![]() |
|
||||
Регистрация: 16.08.2006
Санкт-Петербург
Сообщений: 508
![]() |
Цитата:
![]() Численные методы решения уравнений слышал - тоже подбор )) Только вот я всё туплю - где применяется этот алгоритм в твоей видюшке? Хочешь, я перепишу свой вариант на c# (заодно оптимизирую), и выдам тебе в виде lisp-функции? Посмотришь, как оно будет работать. И ещё, дай, пожалуйста, вариант с большим кол-вом n - потестировать. |
|||
![]() |
|
||||
Вода - моя работа Регистрация: 10.11.2009
Санкт-Петербург
Сообщений: 3,638
|
Решил систему, получил это:
-((n+1)^2)*x^2+2*(a*n+b*n-2*s)*x+(a-b)^2=0 На приведённом примере сходится. Проверил ещё пару на обум, тоже работает. Соответственно ответ задачи: x=((a*n+b*n-2*s)+SQRT((a*n+b*n-2*s)^2+((n+1)^2)*((a-b)^2)))/((n+1)^2))
__________________
Нерешаемых проблем не бывает. Последний раз редактировалось KronSerg, 22.11.2012 в 00:54. |
|||
![]() |
|
||||
Всем спасибо, к сожалению задача не решается в общем случаи, это я пример составлял от обратного, придумал a, придумал b, придумал шаг x, посчитал получившуюся сумму S она соответственно и решилась.
Код:
Код:
Код:
__________________
Почему все вдруг становятся умными, когда уже не надо? |
||||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите с проектным решением по покрытию... | ggipp | Конструкции зданий и сооружений | 10 | 15.12.2011 10:17 |
Помогите с решением проблемы (колонна и балка все в трещинах) | Zloy_trol | Конструкции зданий и сооружений | 12 | 23.09.2011 15:25 |