Форум сайта python.su
Во входном файле даны 9 сторон
В выходной файл в 1 строке записать 3 стороны одного подобного треугольника во 2 строке записать 3 стороны другого треугольника
Помогите пожалуйста решить!
Офлайн
dingoДайте решение задачи в блок-схемах или псевдокоде или на любом другом языке, которым владеете.
Во входном файле даны 9 сторонВ выходной файл в 1 строке записать 3 стороны одного подобного треугольника во 2 строке записать 3 стороны другого треугольникаПомогите пожалуйста решить!
Офлайн
Есть решение перебором но это полный говнокод , который даже стыдно выкладывать
Офлайн
dingoПотом пишем 2 строки по 3 стороны. Куда еще 3 стороны девались? Условие непонятно.
даны 9 сторон
Офлайн
from itertools import combinations ... sides = {'a':a,...} # стороны triangles = filter(is_triangle, combinations(sides,3)) pairs = filter(is_pair, combinations(triangles,2)) similar_triangles = filter(are_similar, pairs)
Отредактировано adray (Окт. 30, 2012 06:59:48)
Офлайн
Вот doza_and правильно сказал
Дружище можешь помочь написать ее всю, а то я уже давно не программировал почти все забыл
А так может даже вспомню
Офлайн
adrayв коде одна сторона может использоваться в разных треугольниках одновременно
Осталось только дописать функции is_triangle, is_pair, are_similar.
Офлайн
py.user.nextДа, поэтому там есть фильтр по is_pair, где должна проверяться уникальность граней, которые хранятся в словаре.
в коде одна сторона может использоваться в разных треугольниках одновременно
def is_pair(pair): return len(set(pair[0]).union(pair[1])) == 6
triangles = map(dict, filter(is_triangle, combinations(sides.items(),3)))
Офлайн
adrayэту я просмотрел, не обратил внимание
Да, поэтому там есть фильтр по is_pair
Отредактировано py.user.next (Ноя. 1, 2012 03:53:05)
Офлайн