ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 1659. Правильные треугольники

checker
Послано ASK 17 мар 2018 02:18
#!python3
s = """0 30
-25.9807621135 -15
25.9807621135 -15
3.711537444785714 10.714285714285715
-11.134612334357143 -2.142857142857144
7.423074889571431 -8.571428571428571
18.557687223928568 23.57142857142857
-29.69229955828571 4.285714285714285
11.134612334357145 -27.857142857142854"""

import matplotlib.pyplot as plt
from math import cos, sin, pi
fig = plt.figure()
ax = fig.add_subplot(111,aspect='equal')

r=[[float(a) for a in p.split()] for p in s.split("\n")]
def d(a,b): return (r[a][0]-r[b][0])**2 + (r[a][1]-r[b][1])**2
def z(a,b): return abs(a-b) < 1e-6

a = 0
for i in range(len(r)):
    for j in range(i+1,len(r)):
        for k in range(j+1,len(r)):
            if z(d(i,j),d(i,k)) and z(d(i,j),d(j,k)) and z(d(j,k),d(i,k)):
                a += 1
                x = [r[t][0] + 0.5*cos(2*pi*a/9) for t in (i,j,k,i)]
                y = [r[t][1] + 0.5*sin(2*pi*a/9) for t in (i,j,k,i)]
                plt.plot(x, y, '-')
for p in r: plt.plot(p[0],p[1],'bo')
plt.grid()
plt.show()
print(a)
Re: checker
Послано sergovoy 4 авг 2018 14:51
Thanks!