kxcoze

marina_makoha_lab??_1

May 11th, 2021 (edited)
206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.47 KB | None | 0 0
  1.  
  2. def parallel_check(k1, b1, k2, b2):
  3.     if k1 == k2 and b1 != b2:
  4.         return True
  5.     return False
  6.  
  7.  
  8. def create_line(x1, y1, x2, y2):
  9.     """
  10.    y = (k)x + (b)
  11.    """
  12.     k = round((y2 - y1)/(x2 - x1), 3)
  13.     b = round((x2*y1 - x1*y2)/(x2 - x1), 3)
  14.  
  15.     return (k, b), (x1, y1, x2, y2)
  16.  
  17.  
  18. n = int(input("Введите кол-во точек: "))
  19. coordinates = []
  20. print(f"Введите {n} прямых, задав координату в виде (x, y) - x, y (через пробел):")
  21. for _ in range(n):
  22.     x, y = map(int, input().split())
  23.     coordinates.append((x, y))
  24.  
  25.  
  26. add_lines = []
  27. for checked_ind, checked_coord in enumerate(coordinates):
  28.     for ind, coord in enumerate(coordinates):
  29.         if ind != checked_ind:
  30.             add_lines.append(create_line(*checked_coord, *coord))
  31.  
  32. n = int(input("Введите кол-во прямых: "))
  33. all_lines = []
  34. print(f"Введите {n} прямых, задав 'y = kx + b' их коэффициенты - k, b (через пробел):")
  35. for _ in range(n):
  36.     k, b = [float(x) for x in input().split()]
  37.     all_lines.append((k, b))
  38.  
  39. maxi = [-1, 0]
  40. for checked_ind, checked_comb in enumerate(add_lines):
  41.     res = 0
  42.     for line in all_lines:
  43.         if parallel_check(*checked_comb[0], *line): res += 1
  44.     if res > maxi[1]:
  45.         maxi[1] = res
  46.         maxi[0] = checked_ind
  47. answer = add_lines[maxi[0]][-1]
  48. print(f'Ответ: ({answer[0]}, {answer[1]}) и ({answer[2]}, {answer[3]})')
Add Comment
Please, Sign In to add comment