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.