Middle — Senior
Hoe houd je rekening met dubbele punten bij het controleren van symmetrie?
sobes.tech AI
Antwoord van AI
Bij het controleren van de symmetrie van een puntenverzameling is het belangrijk om rekening te houden dat dubbele punten de uitkomst kunnen vertekenen als ze niet correct worden behandeld. Om duplicaten mee te nemen, worden meestal de volgende benaderingen toegepast:
- Gebruik van datastructuren zonder duplicaten: bijvoorbeeld, de lijst met punten omzetten in een set om herhalingen te voorkomen.
- Het tellen van het aantal van elk punt: als de symmetrie rekening moet houden met de multipliciteit van de punten, moet het aantal worden opgeslagen in een woordenboek (bijvoorbeeld
Map<Point, Integer>). - Vergelijking met inachtneming van het aantal: bij het controleren van de symmetrie controleren of voor elk punt en zijn spiegelbeeld het aantal overeenkomt.
Voorbeeld in Python, waarbij duplicaten worden meegenomen en de symmetrie ten opzichte van de Y-as (x=0) wordt gecontroleerd:
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
Op deze manier worden dubbele punten meegenomen op basis van hun aantal, en wordt de symmetrie gecontroleerd met inachtneming van deze aantallen.