gringotopies

hung1

Jan 8th, 2020
226
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.10 KB | None | 0 0
  1. import sys
  2. def permute(a, results):
  3.     if len(a) == 1:
  4.         results.insert(len(results), a)
  5.     else:
  6.         for i in range(0, len(a)):
  7.             element = a[i]
  8.             a_copy = [a[j] for j in range(0, len(a)) if j != i]
  9.             subresults = []
  10.             permute(a_copy, subresults)
  11.             for subresult in subresults:
  12.                 result = [element] + subresult
  13.                 results.insert(len(results), result)
  14.  
  15. matrix = [[5,7,8,7],
  16.           [6,4,7,6],
  17.           [7,5,6,5],
  18.           [4,3,5,9]]
  19.  
  20.  
  21. results = []
  22. permute(range(len(matrix)), results)
  23.  
  24. minval = sys.maxsize
  25. res_asign=[]
  26. for indexes in results:
  27.     cost = 0
  28.     for row, col in enumerate(indexes):
  29.         cost += matrix[row][col]
  30.     if (cost<minval):
  31.         minval = cost
  32.         res_asign=indexes
  33.      
  34.      
  35. index_asign=0
  36. res_final=[]
  37.  
  38. for rows in matrix:
  39.     for i in range(0,len(rows)):
  40.        
  41.         if(res_asign[index_asign]==i):
  42.             res_final=res_final+[rows[i]]
  43.     index_asign=index_asign+1
  44.    
  45.    
  46. #Przypisanie
  47. print(res_final)
  48. #Ostateczny koszt
  49. print(minval)
Add Comment
Please, Sign In to add comment