@smarthomeblog

Как посчитать квадраты на разлинованной странице?

Собственно квадраты надо посчитать тут:

5c8e88c49b38f543813585.jpeg

Может есть алгоритм или подход или паттерн.
Заранее спасибо.
  • Вопрос задан
  • 104 просмотра
Пригласить эксперта
Ответы на вопрос 1
longclaps
@longclaps
from collections import Counter
from itertools import combinations


def HowManySquares(xx, yy):
    """
    :param xx: отсортированые x-координаты вертикалей
    :param yy: отсортированые y-координаты горизонталей
    """
    ww = Counter(b - a for a, b in combinations(xx, 2))
    hh = Counter(b - a for a, b in combinations(yy, 2))
    return sum(c * hh[w] for w, c in ww.items())


print(HowManySquares([0, 2, 3, 4, 5, 6], [0, 2, 3, 4, 6]))  # 31
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы