Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 29, 2012 15:50:57

dingo
Зарегистрирован: 2012-03-29
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Задача про подобные треугольники

Во входном файле даны 9 сторон
В выходной файл в 1 строке записать 3 стороны одного подобного треугольника во 2 строке записать 3 стороны другого треугольника
Помогите пожалуйста решить!

Офлайн

#2 Окт. 29, 2012 15:54:23

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Задача про подобные треугольники

dingo
Во входном файле даны 9 сторонВ выходной файл в 1 строке записать 3 стороны одного подобного треугольника во 2 строке записать 3 стороны другого треугольникаПомогите пожалуйста решить!
Дайте решение задачи в блок-схемах или псевдокоде или на любом другом языке, которым владеете.



Офлайн

#3 Окт. 29, 2012 15:59:16

dingo
Зарегистрирован: 2012-03-29
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Задача про подобные треугольники

Есть решение перебором но это полный говнокод , который даже стыдно выкладывать

Офлайн

#4 Окт. 29, 2012 21:13:52

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Задача про подобные треугольники

dingo
даны 9 сторон
Потом пишем 2 строки по 3 стороны. Куда еще 3 стороны девались? Условие непонятно.

Может так?
даны длины 9 отрезков. Составить из этих отрезков 2 подобных невырожденых треугольника и выписать длины их сторон в две строки первая для первого треугольника вторая для второго.



Офлайн

#5 Окт. 29, 2012 21:26:44

adray
Зарегистрирован: 2012-09-15
Сообщения: 123
Репутация: +  18  -
Профиль   Отправить e-mail  

Задача про подобные треугольники

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)

Осталось только дописать функции is_triangle, is_pair, are_similar.

Отредактировано adray (Окт. 30, 2012 06:59:48)

Офлайн

#6 Окт. 30, 2012 08:59:36

dingo
Зарегистрирован: 2012-03-29
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Задача про подобные треугольники

Вот doza_and правильно сказал
Дружище можешь помочь написать ее всю, а то я уже давно не программировал почти все забыл
А так может даже вспомню

Офлайн

#7 Окт. 31, 2012 04:59:31

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9885
Репутация: +  853  -
Профиль   Отправить e-mail  

Задача про подобные треугольники

adray
Осталось только дописать функции is_triangle, is_pair, are_similar.
в коде одна сторона может использоваться в разных треугольниках одновременно



Офлайн

#8 Окт. 31, 2012 12:56:45

adray
Зарегистрирован: 2012-09-15
Сообщения: 123
Репутация: +  18  -
Профиль   Отправить e-mail  

Задача про подобные треугольники

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)))

Офлайн

#9 Ноя. 1, 2012 03:34:37

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9885
Репутация: +  853  -
Профиль   Отправить e-mail  

Задача про подобные треугольники

adray
Да, поэтому там есть фильтр по is_pair
эту я просмотрел, не обратил внимание



Отредактировано py.user.next (Ноя. 1, 2012 03:53:05)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version