Автор | Стоимости боя артефактов и оа |
для FireSwarm:
Зачем? Попробовать отсеять заранее невыгодные арты? Дык тут не угадать, по большей части. Хотя, такой анализ мог бы существенно уменьшить кол-во переборов.
"Жадный" алгоритм такой.
Считаем для всех артов отношение цена/ОА.
Выбираем арт с минимальным отношением.
Пихаем, удаляем из списка и повторяем процедуру для оставшегося ОА.
Оптимума не гарантирует, но приемлемый вариант найдет.
Возможны модификации. |
спасибо |
для Monsieur:
Жадным алгоритмом можно и без скрипта всё проверить)) К тому же, он очень редко даёт требуемый результат.
Если уж заморачиваться, то нужно генетический использовать, он как раз для таких случаев и придуман.
Но в моём случае идёт тупая сортировка огромной таблицы. И проблема только в размере этой таблицы. И в данном случае если оптимизировать - то стоимость ОА это самая эффективная штука. |
для FireSwarm:
нужно генетический использовать - а можно поподробнее? |
для FireSwarm:
Генетический не надо, достаточно динамического программирования.
Если представить, что есть всего 2 слота (щит и меч) и надо 10ОА.
Делаем цикл по ОА от 1 до 10.
1. Ищем самый дешевый меч на (ОА).
2. Выбираем щит на 10-(ОА).
Запоминаем стоимость.
3. ОА++
Повторяем, выбираем минимальный.
С 9ю слотами все то же самое, перебираем мечи и делаем рекурсию по оставшимся 8 слотам по тому же принципу. |
для CHernoknizhnik:
Можно как-нить, но не в этой теме))
для Monsieur:
И получился у тебя полный перебор. С учётом, что 3 вложенных цикла считается предвестником катастрофы, 9 я даже пробовать не буду. |
для FireSwarm:
Это НЕ полный перебор. Это динамическое программирование, которое в данном случае похоже на метод ветвей и границ. |
для Monsieur:
Точно, не совсем догнал сразу...
Но всё равно генетика тут рулить будет, по моему. |
Если в другом порядке делать.
Обозначим через ОА(х) оптимальное решение на х ОА.
Кодируем как вектор из 9 элементов, соответствующих слотам.
Сначала находим оптимальное решение на 1ОА.
Это тривиально - самый дешевый меч.
Теперь 2ОА.
Функция Беллмана
ОА(2) = мин(Меч(2), любой слот(1)+ОА(1)).
И продолжаем в том же духе.
ОА(3) = мин(Меч(3), самый дешевый арт на (1)+ОА(2), самый дешевый арт на 2+ОА(1))
и т.д. |
Делаем цикл по ОА от 1 до 10.
1. Ищем самый дешевый меч на (ОА).
2. Выбираем щит на 10-(ОА).
Запоминаем стоимость.
3. ОА++
Повторяем, выбираем минимальный.
ГоТошник чертов =), кошернее все арты в табличку и группировку по слоту, и функцией min() определить по заданному ОА (сколько на выходе надо), нету функции? пишется в 5 строк. |
Точнее, не совсем так.
Меч должен быть обязательно.
Обозначим ОА8(х) ОА минимальной стоимости на х очков в оставшихся 8 слотах.
ОА(1) = самый дешевый меч.
ОА8(1) = самый дешевый арт на остальные 8 слотов.
ОА(2) = мин(меч(2), меч(1)+ОА8(1))
ОА(3)=мин(меч(3), меч(2)+ОА8(1), меч(1)+ОА8(2))
ОА(4)=мин(меч(4), меч(3)+ОА8(3), меч(2)+ОА8(2), меч(1)+ОА8(1))
а для ОА8 та же схема. |
Делаем цикл по ОА от 1 до 10.
1. Ищем самый дешевый меч на (ОА).
2. Выбираем щит на 10-(ОА).
Запоминаем стоимость.
3. ОА++
Повторяем, выбираем минимальный.
А можно такой сервис на стоимость стата сделать?
С функцией заполнения вручную стоимости артов повышенной прочки. |
Спосибо |
на больших левелах мин оа вообще не актуально, тупо некуда в нем ходить. |
для SpiritHorse:
Если кто-то скрипт напишет.
Я могу на Матлабе написать, но для сообщества ГВД от этого будет мало пользы, а скриптописанию в НТМL, увы, не обучен :( |
в ГВ всегда ходят |
а скриптописанию в НТМL, увы, не обучен
тут поиск данных в массиве по заданным параметрам, причем тут ХЭТЭМЭЭЛ? пишется на любом языке или в любой СУБД, но "если умеешь что-то, никогда не делай это бесплатно" (с) Джокер
в ГВ всегда ходят
Да ладно! xD |
для The Emperor:
То, что ты описываешь - это как раз жадный алгоритм.
Подбор ОА на самом деле несколько более сложная задача. |
То, что ты описываешь - это как раз жадный алгоритм.
Подбор ОА на самом деле несколько более сложная задача.
инженер решил поспорить с финансистом про, по сути, финансовую тему? =); ну да, для инженера Подбор ОА на самом деле несколько более сложная задача я же вижу её обыденным поиском наиболее дешевого решения бизнес процесса. |
для The Emperor:
я же вижу её обыденным поиском наиболее дешевого решения бизнес процесса.
Только это решение будет неоптимальным. То, о чем ты говоришь - это жадный алгоритм из поста 61. |