Информатика. ЕГЭ

Задание 27. Информатика. ЕГЭ. Поляков-7612

Просмотры: 2242
Изменено: 1 февраля 2025

(В. Шубинкин) При проведении эксперимента заряженные частицы попадают на чувствительный экран размером \(12\) на \(9\) условных единиц. При попадании каждой частицы на экран в протоколе фиксируются координаты попадания в условных единицах. При анализе результатов выделяют кластеры – группы точек на экране, в которые попали частицы. Каждая точка принадлежит только одному кластеру. Минимальное (максимальное) расстояние между кластерами – это минимальное (максимальное) расстояние между двумя точками, одна из которых принадлежит одному кластеру, а вторая – другому. Расстояние между двумя точками \(A(x_1, \, y_1)\) и \(B(x_2, \, y_2)\) вычисляется по формуле: $$ d(A, \, B) = \sqrt{(x_1 - x_2)^2 + (y_1 - y_2)^2} $$ Аномалиями назовём совокупности из не более чем \(10\) точек, каждая из которых находится на расстоянии более одной условной единицы от точек кластеров. Аномалии в расчётах не учитываются. Даны два входных файла (файл A и файл Б). В файле A хранятся данные о частицах двух кластеров. В каждой строке записана информация о расположении на карте одной точки: сначала координата \(x\), затем координата \(y\) (в условных единицах). Известно, что количество точек не превышает \(1000\). В файле Б хранятся данные о трёх кластерах. Известно, что количество точек не превышает \(10~000\). Структура хранения информации о точках в файле Б аналогична файлу А. Возможные данные одного из файлов иллюстрированы графиком. Для каждого файла определите минимальное \(d_{min}\) и максимальное \(d_{max}\) расстояния между двумя кластерами. В ответ запишите \(4\) числа: в первой строке целую часть произведения \(d_{min} \times 10~000\), затем целую часть произведения \(d_{max} \times 10~000\) для файла А, во второй строке – аналогичные данные для файла Б.

Решение:

Точечная диаграмма, построенная для файла А в табличном процессоре, имеет вид

Видно, что один кластер находится в прямоугольника \(0 < x < 5\), \(0 < y < 5\). Второй лежит в прямоугольнике \(5 < x < 11\), \(5 < y < 9\). Остальные точки — это аномалии.

Точечная диаграмма для файла Б, построенная в табличном процессоре, имеет вид

Видим, что кластер под номером \(0\) лежит в прямоугольнике \(0 < x < 5\), \(5 < y < 9\). Кластер под номером \(1\) находится в прямоугольнике \(1 < x < 6\), \(1 < y < 5\). Кластер под номером \(2\) лежит в прямоугольнике \(7 < x < 11\), \(2 < y < 7\). Минимальное расстояние нужно искать между кластерами \(0\) и \(1\), максимальное — между кластерами \(0\) и \(2\).

Python (3.10+)


def which_cluster(point, task):
    x, y = point
    match task:
        case 0:
            if 0 < x < 5 and 0 < y < 5:
                return 0
            elif 5 < x < 11 and 5 < y < 9:
                return 1
            else:
                return -1
        case 1:
            if 0 < x < 5 and 5 < y < 9:
                return 0
            elif 1 < x < 6 and 1 < y < 5:
                return 1
            elif 7 < x < 11 and 2 < y < 7:
                return 2
            else:
                return -1

def dist(point1, point2):
    x1, y1 = point1
    x2, y2 = point2
    return ((x1 - x2)**2 + (y1 - y2)**2)**0.5

base = ''
files = ['27A.txt', '27B.txt']
culsters = [2, 3]

for t in [0, 1]:
    data = [[], [], []]
    fd = open(base + files[t])
    fd.readline()
    for line in fd:
        x, y = map(float, line.replace(',', '.').split())
        cl = which_cluster([x, y], t)
        if cl > -1:
            data[cl].append([x, y])
    min_cl = [[(0, 1)], [(0, 1)]]
    max_cl = [[(0, 1)], [(0, 2)]]
    dmin = 10**10
    dmax = 0
    for c in min_cl[t]:  
        for p1 in data[c[0]]:
            for p2 in data[c[1]]:
                dmin = min(dmin, dist(p1, p2))
    for c in max_cl[t]:  
        for p1 in data[c[0]]:
            for p2 in data[c[1]]:
                dmax = max(dmax, dist(p1, p2))
                
    print(int(dmin * 10000), int(dmax*10000))

Ответ:
\(40112 \,\, 103021\)
\(20063 \,\, 94283\)

Новый тренажёр-эмулятор
Станции КЕГЭ

Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене

Новое видео
Методы решения задания 16 ЕГЭ по Информатике «Вычисление рекуррентных выражений»
Поддержать автора сайта!
​ Поддержите автора сайта, если материалы, размещённые здесь, оказались вам полезны.
Расписание пробников Статграда в 2026/27 учебном году
Информатика ОГЭ 9 класс
  1. 13 октября 2026 года
  2. 3 декабря 2026 года
  3. 21 января 2027 года
  4. 19 февраля 2027 года
  5. 23 марта 2027 года
  6. 27 апреля 2027 года
Математика ОГЭ 9 класс
  1. 23 сентября 2026 года
  2. 1 декабря 2026 года
  3. 22 января 2027 года
  4. 3 марта 2027 года
  5. 14 апреля 2027 года
Физика ОГЭ 9 класс
  1. 19 октября 2026 года
  2. 10 декабря 2026 года
  3. 29 января 2027 года
  4. 17 марта 2027 года
  5. 22 апреля 2027 года
Математика ЕГЭ 10 класс
  1. 3 февраля 2027 года
  2. 11 мая 2027 года
Информатика ЕГЭ 11 класс
  1. 22 октября 2026 года
  2. 15 декабря 2026 года
  3. 26 января 2027 года
  4. 2 марта 2027 года
  5. 13 апреля 2027 года
Математика ЕГЭ 11 класс
  1. 30 сентября 2026 года
  2. 17 декабря 2026 года
  3. 9 февраля 2027 года
  4. 16 марта 2027 года
  5. 21 апреля 2027 года
Физика ЕГЭ 11 класс
  1. 14 октября 2026 года
  2. 16 декабря 2026 года
  3. 4 февраля 2027 года
  4. 12 марта 2027 года
  5. 9 апреля 2027 года