Допустим, у нас есть начальное состояние в 10 долларов, и мы хотим зарабатывать деньги, покупая и продавая картофель, и каким-то волшебным образом мы знаем цены (в долларах) за кг каждой картофельной специи в год. Каков наилучший алгоритм для нахождения окончательного максимального состояния или локального максимума?
<сильный>!! Если у вас есть состояние в 15 долларов, и вы продаете несколько килограммов в год и зарабатываете, скажем, на 4 доллара больше, вы не можете купить что-то, что стоит вам 19 долларов в том же году, они независимы, поэтому у вас должны быть деньги, чтобы купить что-то перед продажей. что-то еще в том же году !!
e.g
стартовое состояние: 10$
Цены ($) за кг картофельной приправы в год:
Картофельная приправа 1 цена($) за кг:
[5, 8, 7, 10, 12, 11, 14, 11, 10]Картофельная приправа 2 цена($) за кг:
[8, 8, 4, 5, 7, 15, 10, 12, 10]Картофельная приправа 3 цена($) за кг:
[4, 7, 5, 6, 10, 9, 11, 15, 11]
Что будет хорошим решением для этого?
Простой локальный максимум можно получить по следующему пути:
- 1-й год:
[Купить 1 кг (5 долл. США) у первой специи]
[Купить 1,25 кг (5 долл. США) у третьей специи]- 2-й год:
[Продать 1 кг (8 долл. США) первой специи]- 3 год:
[Купить 2 кг (8 долл. США) у Second Spice]- 4-й год: ничего
- 5-й год: ничего
- 6-й год: ничего
- 7-й год: ничего
- 8-й год:
[Продать 1,25 кг (-15x1,25=18,75 $) третьей специи]
[Продать 2 кг (12x2=24 $) второй специи]- 9-й год
ничегоСостояние 42,75$ (это был пример, конечно не максимальное состояние)