Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Python пж помогите

Овоуо Вошушу Ученик (109), закрыт 6 месяцев назад
Сложность: ★ 3 / 5

Даны координаты трех точек (xa; ya) (xb; yb) (xc; yc), точки соединены отрезками AB, BC и AC. Найдите отрезок с минимальной длинной.

Гарантируется, что всегда есть только один отрезок с наименьшей длиной.



При решении задачи необходимо реализовать и использовать функцию расстояния между двумя точками.

Примечание: если вы забыли формулу расстояния между двумя точками, вы легко можете ее найти в интернете.

Формат входных данных
С клавиатуры вводятся 6 целых чисел, каждое с новой строки.
Сначала пара координат точки A, затем пара координат точки B и в конце пара координат точки C.

Формат выходных данных
Выведите название самого короткого отрезка. Название должно быть выведено большими буквами, например “АС”.
Лучший ответ
Папа Высший разум (155094) 7 месяцев назад
Мэйловские чудо-программисты сломали отображение блока кода. Как обычно бывает, когда детвора без мозгов и ответственности допускается к разработке ПО. Так что если блок кода не показывается, то под ним обычным текстом код.

В три строчки:
 s = [tuple(map(int, map(input, ('', '')))) for _ in range(3)]
l = [sum(map((2).__rpow__, map(int.__sub__, s[i], s[(i+1)%3]))) for i in range(3)]
print(('AB','BC','AC')[min(range(3), key=l.__getitem__)])
Можно, конечно, покороче сделать, но это уже думать придётся.

s = [tuple(map(int, map(input, ('', '')))) for _ in range(3)]
l = [sum(map((2).__rpow__, map(int.__sub__, s[i], s[(i+1)%3]))) for i in range(3)]
print(('AB','BC','AC')[min(range(3), key=l.__getitem__)])

Или вот однострочник, если хочешь:
 from itertools import cycle, islice, pairwise
print(('AB','BC','AC')[min(range(3), key=list(map(lambda x: sum(map((2).__rpow__, map(int.__sub__, *x))), pairwise(islice(cycle(tuple(map(int, map(input, ('', '')))) for _ in range(3)), 4)))).__getitem__)])

Без отдельных импортов, реальная одна строка:
 print(('AB','BC','AC')[min(range(3), key=list(map(lambda x: sum(map((2).__rpow__, map(int.__sub__, *x))), __import__("itertools").pairwise(__import__("itertools").islice(__import__("itertools").cycle(tuple(map(int, map(input, ('', '')))) for _ in range(3)), 4)))).__getitem__)]) 
Остальные ответы
Рустам Абдрашитов Мудрец (15350) 7 месяцев назад
На
 import math 
def distance(x1, y1, x2, y2):
return math.sqrt((x2 - x1)**2 + (y2 - y1)**2)
print("Введите координаты точки A:")
xa = int(input("xa = "))
ya = int(input("ya = "))
print("Введите координаты точки B:")
xb = int(input("xb = "))
yb = int(input("yb = "))
print("Введите координаты точки C:")
xc = int(input("xc = "))
yc = int(input("yc = "))
ab = distance(xa, ya, xb, yb)
bc = distance(xb, yb, xc, yc)
ac = distance(xa, ya, xc, yc)
if ab < bc and ab < ac:
print("AB")
elif bc < ab and bc < ac:
print("BC")
else:
print("AC")
Похожие вопросы