ARTICLE AD BOX
import math
edges = [
("GBP", "USD", 1.35)
("GBP", "EUR", 1.15)
("USD", "GBP", 0.74)
("USD", "EUR", 0.85)
("EUR", "GBP", 0.87)
("EUR", "USD", 1.18)
("THB", "USD", 0.030)
("THB", "EUR", 0.025)
("THB", "GBP", 0.027)
]
arbitrage = []
transformed_edges = []
for v,w, rate in edges: #v being the start node, w being the end node
weight = -math.log(rate)
transformed_edges.append(v, w , weight)
def arbitrage_exists(vertices, edges, source):
distance = {v: float('inf') for v in vertices}
distance[source] = 0
for i in range(len(vertices) - 1):
for u, v, weight in transformed_edges:
if distance[u] + w < distance[v]:
distance[v] = distance[u] + w
for u, v, weight in transformed_edges:
if distance[u] + w < distance[v]:
arbitrage = (u, v, weight)
return True
return False
This is what I have so far it is my first time working on such a project in python (and haven't been using python for a long time still very unexperienced) so any advice is appreciated.
