import random def create_network(C, L): # create ring structure edges = [(i, (i+1)%C) for i in range(C)] # add extra edges to preserve ring k = (C-1)//2 for i in range(C): edges.append((i, (i+k)%C)) edges.append((i, (i-k)%C)) # output network for i in range(L): print(edges[i][0]+1, edges[i][1]+1) def find_ring(permuted_edges, C): # create mapping from new IDs to original IDs mapping = {} for i in range(C): mapping[permuted_edges[i][0]] = i mapping[permuted_edges[i][1]] = i # determine sequence of computers in permuted ring permuted_ring = [mapping[permuted_edges[0][0]]] for i in range(C): permuted_ring.append(mapping[permuted_edges[i][1]]) # follow links to determine sequence of computers in ring ring = [permuted_ring[0]] i = permuted_ring[ring[0]] while i != permuted_ring[0]: r