Middle — Senior
Simmetriyanı yoxlayarkən təkrarlanan nöqtələri necə nəzərə almaq olar?
sobes.tech Süni İntellekt
AI-dan cavab
Nöqtələr toplusunun simmetriyasını yoxlayarkən, təkrarlanan nöqtələrin düzgün işlənməməsi nəticəni poza bilər. Təkrarlananları nəzərə almaq üçün adətən aşağıdakı yanaşmalar tətbiq olunur:
- Təkrarlanmayan məlumat strukturlarından istifadə etmək: məsələn, nöqtələr siyahısını toplanmağa çevirmək (set) və təkrarlamaları aradan qaldırmaq.
- Hər nöqtənin sayını hesablamaq: əgər simmetriya nöqtələrin çoxluğu ilə nəzərə alınmalıdırsa, sayını sözlükdə (məsələn,
Map<Point, Integer>) saxlamaq. - Sayını nəzərə alaraq müqayisə etmək: simmetriyanı yoxlayarkən, hər nöqtə və onun əks olunmuş nöqtəsi üçün sayların uyğun olub-olmadığını yoxlamaq.
Python nümunəsində, təkrarlananlar nəzərə alınır və Y oxu (x=0) ətrafında simmetriya yoxlanılır:
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
Bu şəkildə, təkrarlanan nöqtələr onların sayına görə nəzərə alınır və simmetriya bu saylar nəzərə alınmaqla yoxlanır.