Guest User

Untitled

a guest
Nov 17th, 2017
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.55 KB | None | 0 0
  1. class Vector(object):
  2.  
  3. def __init__(self, coords):
  4. self.coordinates = coords
  5. self.dimensions = len(coords)
  6.  
  7. def __str__(self):
  8. return "Vector: {}".format(self.coordinates)
  9.  
  10. def __eq__(self, v):
  11. return self.coordinates == v.coordinates
  12.  
  13.  
  14. def add_vectors(*vecs): # of variable length :)
  15. largest = max([v.dimensions for v in vecs])
  16.  
  17. result = [0] * largest
  18. for v in vecs:
  19. for idx, p in enumerate(v.coordinates):
  20. result[idx] += p
  21.  
  22. return Vector(result)
  23.  
  24.  
  25. def sub_vectors(*vecs):
  26. largest = max([v.dimensions for v in vecs])
  27. result = [0] * largest
  28. for idx, p in enumerate(vecs[0].coordinates):
  29. result[idx] = p
  30.  
  31. vecs = vecs[1:]
  32. for v in vecs:
  33. for idx, p in enumerate(v.coordinates):
  34. result[idx] -= p
  35.  
  36. return Vector(result)
  37.  
  38.  
  39. def scale_vector(scalar, vec):
  40. result = [0] * vec.dimensions
  41. for idx, p in enumerate(vec.coordinates):
  42. result[idx] = p * scalar
  43.  
  44. return Vector(result)
  45.  
  46.  
  47. if __name__ == "__main__":
  48. y = Vector([-11, 3, 4])
  49. x = Vector([-1, 2, 6, 0])
  50. w = Vector([1, 5, 2, 19])
  51. print(add_vectors(x, y, w))
  52. w = Vector([1, 5, 2, 19])
  53. x = Vector([1, 2, 6, 0])
  54. y = Vector([1, 3, 4])
  55. print(sub_vectors(w, x, y))
  56. y = Vector([1, 3, 4])
  57. s = .5
  58. print(scale_vector(s, y))
  59.  
  60. print("QUESTION 1")
  61. print(add_vectors(Vector([8.218, -9.341]), Vector([-1.129, 2.111])))
  62. print(sub_vectors(Vector([7.119, 8.215]), Vector([-8.223, 0.878])))
  63. print(scale_vector(7.41, Vector([1.671, -1.012, -0.318])))
Add Comment
Please, Sign In to add comment