Sobes.tech
Middle — Senior

Jak zohlednit duplicitní body při kontrole symetrie?

sobes.tech AI

Odpověď od AI

Při kontrole symetrie množiny bodů je důležité vzít v úvahu, že duplicitní body mohou výsledek zkreslit, pokud s nimi není správně zacházeno. Pro zohlednění duplicit se obvykle používají následující přístupy:

  • Použití datových struktur bez duplicit: například převod seznamu bodů na množinu (set), aby se eliminovaly opakování.
  • Počítání počtu každého bodu: pokud má symetrie brát v úvahu násobnost bodů, je třeba jejich počet uložit do slovníku (například Map<Point, Integer>).
  • Porovnání s ohledem na počet: při kontrole symetrie ověřit, že pro každý bod a jeho zrcadlové zobrazení počet odpovídá.

Příklad v Pythonu, kde jsou duplicitní body zohledněny a kontroluje se symetrie vzhledem k ose Y (x=0):

from collections import Counter

def is_symmetric(points):
    counts = Counter(points)
    for (x, y), cnt in counts.items():
        mirror = (-x, y)
        if counts[mirror] != cnt:
            return False
    return True

points = [(1,2), (-1,2), (1,2), (-1,2), (0,0)]
print(is_symmetric(points))  # True

Tímto způsobem jsou duplicitní body brány v úvahu podle jejich počtu a symetrie je kontrolována s ohledem na tyto počty.