алгоритм для преобразования из денег в другое без прямого conversor

#algorithm #logic

#алгоритм #Логические

Вопрос:

мне нужно сделать валютный конвертор.

Предположим, у вас есть список объектов с денежной валютой и его значением в другом. например:

 From To Value
USD-CAN 0,1
CAN-USD 0,4
USD-AUD 0.5
AUD-USD 0,6
AUD-EUR 1
EUR-AUD 3
 

И вам нужно преобразовать список значений из валюты деньги в евро, например

 1,22 USD
1,4 CAN
5 AUD
 

Есть некоторые значения, которые он конвертирует напрямую (AUD-EUR), а другие нет (USD-EUR, CAN-EUR).

Ведьма, это лучший способ или алгоритм, чтобы сделать это так ..?

Ответ №1:

Постройте ориентированный граф, где узлы являются валютами, а ребра — прямыми преобразованиями. Найдите кратчайший путь (ы) от исходной валюты к целевой валюте.

Вы можете установить веса ребер как log (коэффициент конверсии), чтобы найти наилучший путь конвертации (используя log для добавления весов вместо их умножения).

Вы даже можете попытаться обнаружить арбитраж с 2 пунктами, арбитраж с 3 пунктами (посмотрите здесь, например) или арбитраж с n пунктами (посмотрите здесь).

Комментарии:

1. Хороший ответ. Спасибо, что указали на треугольный арбитраж. Я знал об этой концепции, но не знал для нее технического термина.