Главное меню

Задача. Какова оптимальная стратегия Джека на валютной бирже?

Автор Nnd, Март 15, 2024, 21:37

« назад - далее »

Nnd

На валютной бирже острова Голд продают динары (D), гульдены (G), реалы (R) и талеры (T). Каждый желающий имеет право совершить сделку купли-продажи с любой парой валют не более одного раза за день.
Курсы валют такие:
D = 6G, D = 25R, D = 120T, G = 4R, G = 21T, R = 5T.
Например, запись D = 6G означает, что на динар можно купить 6 гульденов (или 6 гульденов — поменять на один динар).
Утром у Джека было 32 динара, 192 гульдена, 160 реалов и 800 талеров.
Сколько максимально может быть у Джека вечером
(а) динаров ?
(b) талеров ?
P.S. Подобная задача была на Соросовской олимпиаде (90-е годы).

Kantua

Я буду для краткости писать названия валют 1 буквой по-русски. Д, Г, Р, Т.
А) меняем Г на Д. Напрямую я за 6Г получу 1Д.
Через Р я за 6Г получу 24Р, а за 1Д нужно 25Р. Не подходит.
Через Т я за 6Г получу 6*21=126Т, а за 1Д нужно 120Т. Это выгоднее, чем напрямую.
Гульдены нужно обменять на талеры, а потом на динары.
Меняем Р на Д. Напрямую я за 25Р получу 1Д.
Через Г я за 25Р получу 25/4=6Г+1Р, а 1Д стоит 6Г. Это выгоднее, чем напрямую.
Через Т я за 25Р получу 5*25=125Т, а 1Д стоит 120Т, остаётся 5Т=1Р.
Значит, менять через Т или через Р одинаково выгодно.
Поэтому можно всё менять через Талеры.
192Г=192*21=4032Т. 160Р=160*5=800Т.
Получаем 4032+800+800=5632Т=46*120+112Т= 46Д+112Т.
Всего 46+32=78Д и 112Т.
У нас не хватило всего 8Т для ещё 1Д. Поэтому имеет смысл обменять 2Д на 2*6=12Г, их на 12*21=252Т, а потом 252+112=364Т обратно на 3Д.
Получаем 79Д и 4Т. Теперь меняем 79Д опять через Г на Т (1Д=6Г=126Т) и получаем
79*126+4=9958Т=9958/120=82Д+118Т.
И дальше можно так менять и повышать количество денег неограниченно.
Б) Тоже самое с талерами - меняем их на динары напрямую за 120, а потом через гульдены обратно на талеры по 126. Сумма растёт неограниченно.
                                                                              

YuraU

Попробую еще раз.
Я буду для краткости писать названия валют 1 буквой по-русски. Д, Г, Р, Т.
За 1 день можно произвести по 1 из каждых обменов: Д и Г, Д и Р, Д и Т, Г и Р, Г и Т, Р и Т.
1) Меняем Г на Д. Напрямую я за 6Г получу 1Д.
Через Р я за 6Г получу 24Р, а за 1Д нужно 25Р. Не подходит.
Через Т я за 6Г получу 6*21=126Т, а за 1Д нужно 120Т. Это выгоднее, чем напрямую.
2) Меняем Р на Д. Напрямую я за 25Р получу 1Д.
Через Г я за 25Р получу 25/4=6Г+1Р, а 1Д стоит 6Г. Это выгоднее, чем напрямую.
Через Т я за 25Р получу 5*25=125Т, а 1Д стоит 120Т, остаётся 5Т=1Р.
А) Нам нужно получить максимум Динаров.
У нас есть 32Д. Можно их обменять на 6*32 = 192Г, потом 192Г на 192*21=4032Т. За них мы получим 4032/120=33Д+72Т.
Еще у нас есть 160Р и 800Т. 160Р можно обменять на 160*5=800Т. А можно на 160/4=40Г, а их потом на 40*21=840Т.
Второе выгоднее. В итоге делаем так:
1) меняем Динары на Гульдены (32Д = 192Г)
2) меняем Реалы на Гульдены (160Р = 40Г)
3) все Гульдены меняем на Талеры (192+192+40 = 424Г = 424*21 = 8904Т)
4) меняем все Талеры обратно на Динары (8904+800 = 9704Т = 9704/120 = 80Д + 104Т)
Получаем максимально 80 Динаров.
Б) Нам нужно получить максимум Талеров. Выгоднее всего получать их из Гульденов, 1Г = 21Т.
1) Меняем Талеры на Реалы (800Т = 160Р)
2) меняем Динары на Гульдены (32Д = 192Г)
3) меняем Реалы на Гульдены (160+160Р = 320Р = 80Г)
4) все Гульдены меняем на Талеры (192+192+80 = 464Г = 464*21 = 9744Т)
Получаем максимально 9744 Талера.

YuraU

Обозначим
GD = G → D — операция обмена гульденов на динары.
TRD = T → R → D — операции обмена талеров на реалы, затем реалов на  динары.
Оптимальные стратегии таковы :
(а) на динары : GD, TR, DRGTD. Вечером у Джека D = 84.
(b) на талеры : GD, RT, TDRGT.  Вечером у Джека T = 10150.