Алгоритм поиска оптимальных покупок для клиентов [закрыто]C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Алгоритм поиска оптимальных покупок для клиентов [закрыто]

Сообщение Anonymous »

РЕДАКТИРОВАТЬ: Судя по всему, я смотрю на что-то похожее на задачу о рюкзаке, но с несколькими рюкзаками.
Я изо всех сил пытаюсь разработать алгоритм для следующей задачи .
  • У меня есть N клиентов, у которых есть определенная сумма наличных.
  • У меня есть N товаров, которые можно купить за наличные.
  • Каждый продукт можно приобрести только один раз.
  • Клиенты могут приобрести любое количество продуктов.
Что я хочу сделать, так это вычислить все различные варианты, которые может купить каждый покупатель, а затем найти лучший вариант, который, как я сейчас думаю, является вариантом, при котором было совершено наибольшее количество покупок или наименьшая сумма. денег осталось.
Мое текущее решение немного провалилось, и нужно опубликовать огромное количество кода (хотя я могу по запросу). Я опишу этот процесс ниже:
  • Каждому покупателю предоставляется корзина и история перестановок. Каждая перестановка считается слотом.
  • Каждый элемент повторяется.
  • Для каждого элемента проверяются все клиенты, чтобы узнать, могут ли они его приобрести. . Это оценивается по следующим критериям:
    ** Могут ли они себе это позволить (на основе оставшихся денежных средств после текущей стоимости корзины)
    ** Совершали ли они покупки в предыдущей комбинации
  • Если можно купить, добавить в текущую корзину и сохранить факт покупки для этого слота.
  • Когда все предметы будут повторены, перейдите к следующему слоту.
  • Повторите вышеизложенное.
Простой пример:
Клиент А имеет 100 монет, Клиент Б имеет 30 монет, Клиент У C есть 25 монет
Товар A продается за 75 монет, Продукт B продается за 25 монет, Продукт C продается за 10 монет, Продукт D продается за 50 монет
Перестановка 0 будет такой:
  • Клиент А покупает товар А за 75 монет. Осталось 25 монет.
  • Клиент Б покупает товар Б за 25 монет. Осталось 5 монет.
  • Клиент C покупает товар C за 10 монет. Осталось 15 монет
    Осталось 45 монет
Перестановка 1 будет:
  • Клиент А покупает продукт A и C за 85 монет. Осталось 15 монет.
  • Клиент Б покупает товар Б за 25 монет. У него осталось 5 монет.
  • Клиент В ничего не покупает. У него осталось 25 монет
    Осталось 45 монет
Так и в этом примере. предпочтительная перестановка – 0, поскольку все клиенты совершили хотя бы одну покупку.
Будем благодарны за любую помощь.

Подробнее здесь: https://stackoverflow.com/questions/788 ... -customers
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»