Sobes.tech
Middle — Senior

როგორ შევამოწმოთ ეფექტურად სარკისული წყვილი წერტილებით საპირისპირო x-თან?

sobes.tech AI

პასუხი AI-სგან

ეფექტურად შემოწმებისთვის, არსებობს თუ არა სარკისეული წყვილი წერტილებით, რომლებიც საპირისპირო მნიშვნელობებს შეიცავენ x-ით, შეგიძლიათ გამოიყენოთ მონაცემთა სტრუქტურა სწრაფი ძიებისთვის — მაგალითად, სეტი (set).

ალგორითმი:

  1. ყველა წერტილი ჩადეთ სეტში, რათა განახორციელოთ O(1) ძიება.
  2. თითოეული წერტილი (x, y)-ისთვის, გადაამოწმეთ, თუ სეტში არსებობს (-x, y).

თუ ასეთი წერტილი იპოვეთ, ეს ნიშნავს, რომ არსებობს სარკისეული წყვილი Y-წრის მიმართ.

Python-ის მაგალითი:

points = [(1, 2), (-1, 2), (3, 4), (5, 6)]
point_set = set(points)

for x, y in points:
    if (-x, y) in point_set:
        print(f"პოვეს სარკისეული წყვილი: ({x}, {y}) და ({-x}, {y})")

ეს მეთოდი მუშაობს O(n)-ში, სადაც n წერტილების რაოდენობაა, და ეფექტურია დიდი მონაცემთა ნაკრებებისთვის.