Middle — Senior
Ako zohľadniť duplicitné body pri kontrole symetrie?
sobes.tech AI
Odpoveď od AI
Pri kontrole symetrie množiny bodov je dôležité vziať do úvahy, že duplicitné body môžu skresliť výsledok, ak nie sú správne spracované. Na zohľadnenie duplicit sa zvyčajne používajú nasledujúce prístupy:
- Použitie dátových štruktúr bez duplicit: napríklad, previesť zoznam bodov na množinu (set), aby sa eliminovali opakovania.
- Počítanie počtu každého bodu: ak má symetria brať do úvahy násobnosť bodov, je potrebné ich počet uložiť do slovníka (napríklad,
Map<Point, Integer>). - Porovnanie s ohľadom na počet: pri kontrole symetrie overiť, či pre každý bod a jeho zrkadlové zobrazenie počet zodpovedá.
Príklad v Pythone, kde sa berú do úvahy duplicitá a kontroluje sa symetria vzhľadom na os 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 spôsobom sa duplicitné body berú do úvahy podľa ich počtu a symetria sa kontroluje s ohľadom na tieto počty.