У меня есть технический вызов для вас относительно алгоритма.Найти самую дешевую цену за X количество дней
Допустим, у меня есть этот список дней и цен:
List<ReservationPrice> prices = new List<ReservationPrice>();
prices.Add(new ReservationPrice { NumberOfDays = 1, Price = 1000 });
prices.Add(new ReservationPrice { NumberOfDays = 2, Price = 1200 });
prices.Add(new ReservationPrice { NumberOfDays = 3, Price = 2500 });
prices.Add(new ReservationPrice { NumberOfDays = 4, Price = 3100 });
prices.Add(new ReservationPrice { NumberOfDays = 7, Price = 4000 });
То, что я хотел бы иметь возможность сделать сейчас:
дать мне лучшую цену из списка, основываясь на ряде дней.
Так что если вы запрашиваете 3 дня, то лучшая цена из списка - от одного ребенка (1000) и двух (1200), но, конечно, есть разные комбинации, с которыми вам придется сначала попробовать. Как бы выглядел алгоритм, который нашел лучшую цену из этого списка?
Спасибо!
Полностью неправильно понял то, что вы просили в первом чтении ... (Впоследствии: выпил кофе, понял его лучше!) Не обращайте внимания на мой ответ, если он еще не исчез. –
@ danielovich: AFAICT это можно сформулировать точно так же, как «0-1 рюкзак», который намного проще решить, чем общий рюкзак (вы можете просто «засеять» ваш «0-1 рюкзак» с таким количеством «одного дня», как максимум, который вы хотите найти, вдвое больше «двух дней», третья - «три дня» и т. д.). На самом деле 0-1 Рюкзак как удивительно элегантное решение «DP», которое очень быстро. – SyntaxT3rr0r
http://en.wikipedia.org/wiki/Knapsack_problem –