Scenarioet er at jeg har en liste med vectorer, det jeg ønsker å gjøre er å finne vector-parrene som er lengst unna hverandre.
Eksempel:
Jeg har forsåvidt en egen løsning på dette, men jeg er sikker på at det finnes bedre, kortere, raskere og mer effektive måter å gjøre dette på.
Her er løsningen min:
Spørsmål:
Er det noen som har tips til hvordan man kan skrive denne koden bedre (uten å bruke scipy)?
Eksempel:
Kode
# Vector-posisjoner: xyVectors = [[126, 627], [288, 607], [288, 733]]
Kode
# Vector-posisjonene som er lengst unna hverandre xyVectors[0] ([126, 627]) xyVectors[2] ([288, 733]) # Distanse 193.59752064528098
Her er løsningen min:
Kode
# Create variables to store the result in vector1 = [] vector2 = [] # Generate 8 vector-positions (x,y) xyVectors = [[rand.randint(100,400),rand.randint(600,900)] for x in range(1,8)] # Create a variable to store the largest distance in largestDist = 0 # Outer loop: For each item in the list for x in range(0, len(xyVectors)): # Inner loop: For each item in the list for y in range(0, len(xyVectors)): # If the outer loop is not the same as the inner loop if x != y: # Find the distance between the current elements dist = math.sqrt(math.pow((xyVectors[x][0]-xyVectors[y][0]),2) + math.pow((xyVectors[x][1]-xyVectors[y][1]),2)) # If the current distance is larger than largestDist if dist > largestDist: # Update the variables largestDist = dist vector1 = xyVectors[x] vector2 = xyVectors[y]
Spørsmål:
Er det noen som har tips til hvordan man kan skrive denne koden bedre (uten å bruke scipy)?