Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def parallel_check(k1, b1, k2, b2):
- if k1 == k2 and b1 != b2:
- return True
- return False
- def create_line(x1, y1, x2, y2):
- """
- y = (k)x + (b)
- """
- k = round((y2 - y1)/(x2 - x1), 3)
- b = round((x2*y1 - x1*y2)/(x2 - x1), 3)
- return (k, b), (x1, y1, x2, y2)
- n = int(input("Введите кол-во точек: "))
- coordinates = []
- print(f"Введите {n} прямых, задав координату в виде (x, y) - x, y (через пробел):")
- for _ in range(n):
- x, y = map(int, input().split())
- coordinates.append((x, y))
- add_lines = []
- for checked_ind, checked_coord in enumerate(coordinates):
- for ind, coord in enumerate(coordinates):
- if ind != checked_ind:
- add_lines.append(create_line(*checked_coord, *coord))
- n = int(input("Введите кол-во прямых: "))
- all_lines = []
- print(f"Введите {n} прямых, задав 'y = kx + b' их коэффициенты - k, b (через пробел):")
- for _ in range(n):
- k, b = [float(x) for x in input().split()]
- all_lines.append((k, b))
- maxi = [-1, 0]
- for checked_ind, checked_comb in enumerate(add_lines):
- res = 0
- for line in all_lines:
- if parallel_check(*checked_comb[0], *line): res += 1
- if res > maxi[1]:
- maxi[1] = res
- maxi[0] = checked_ind
- answer = add_lines[maxi[0]][-1]
- print(f'Ответ: ({answer[0]}, {answer[1]}) и ({answer[2]}, {answer[3]})')
Add Comment
Please, Sign In to add comment