Найти расстояние между точками с заданными координатами в n-мерном
пространстве. Расстояние находится по формуле d = sqrt((a1 - b1)2 + (a2 -
b2)^2 + ... + (an - bn)^2), где sqrt - квадратный корень, а1...an -
координаты первой точки, b1..bn - соответствующие координаты второй точки.
#### Особенности решения задачи
Чтобы не вводить каждую координату отдельно, можно запросить сразу все для
каждой точки. Поскольку данные будут иметь строковый тип, то преобразовать их
к списку можно с помощью функции split(). В качестве аргумента функции
передается строка-разделитель, по которому отделяются элементы; если аргумент
отсутствует, то строка разделяется по пробелу. Несмотря на такое разделение,
каждый элемент списка по-прежнему является строкой, а не числом.
Фунция zip() возвращает кортежи соответствующих элементов последовательностей.
Т.е. если ей передать два списка, то на первой итерации будет возвращен кортеж
из первых элементов обоих списков, на второй - из вторых и т. д.
import math n = input("Количество измерений пространства: ") print("Через пробел") a = input("введите " + n + " координаты 1-ой точки: ") b = input("введите " + n + " координаты 2-ой точки: ") n = int(n) a = a.split() b = b.split() if len(a) != n or len(b) != n: print("Неверный ввод!") exit() sum_sqr = 0 for i, j in zip(a,b): sum_sqr += (int(i)-int(j))**2 distance = math.sqrt(sum_sqr) print("Расстояние между точками: %.2f" % distance)Пример работы программы:
Количество измерений пространства: 4 Через пробел введите 4 координаты 1-ой точки: 2 3 -7 4 введите 4 координаты 2-ой точки: 0 0 0 0 Расстояние между точками: 8.83