1. Есть социальная сеть:

Если строки — исходящие взаимодействия, активность равна сумме строки, популярность — сумме столбца. В приведённой матрице оба максимума принадлежат Charlie.

Короткий ответ

Что ответить на собеседовании

Если строки — исходящие взаимодействия, активность равна сумме строки, популярность — сумме столбца. В приведённой матрице оба максимума принадлежат Charlie.

Подробный разбор

Ответ с пояснениями

Условие

  1. Есть социальная сеть:

    1. Пользователи - вершина графа
    2. Возможность взаимодействия (дружность) с другими пользователями (лайк, комментарий, сообщение, репост) = ребро
    3. Связи взаимные (например, количество взаимодействий) = вес ребра
  2. Задачи:

    1. Найти самого активного пользователя
    2. Найти самого популярного пользователя

import numpy as np

shape = (n, n)

adjacency shape = (n, n)

example = np.array([ [0, 8, 3, 0, 2], # Alice [2, 0, 10, 0, 0], # Bob [4, 2, 0, 7, 1], # Charlie [0, 0, 6, 0, 0], # John [3, 1, 2, 0, 0], # Enea ])

Ответ

Если строки — исходящие взаимодействия, активность равна сумме строки, популярность — сумме столбца. В приведённой матрице оба максимума принадлежат Charlie.

Матрица несимметрична, хотя условие говорит о взаимных связях. Поэтому сначала зафиксируем направленную интерпретацию: A[i, j] — действия пользователя i в отношении j.

names = np.array(['Alice', 'Bob', 'Charlie', 'John', 'Enea'])
activity = example.sum(axis=1)     # [13, 12, 14, 6, 6]
popularity = example.sum(axis=0)   # [9, 11, 21, 7, 3]
print(names[activity.argmax()])
print(names[popularity.argmax()])

При равенстве argmax выбирает первый максимум. Если популярность означает число разных взаимодействующих людей, считайте ненулевые элементы, а не веса. Для действительно неориентированной симметричной матрицы суммы строк и столбцов совпадают, поэтому эти метрики перестают различаться.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее