Чтобы помочь Ане проверить совместимость её чувства юмора с Ваней, мы можем написать программу, которая рассчитает оценку совместимости «хи-хи-хи» с использованием предложенной формулы. Для этого нам понадобятся данные о том, сколько анекдотов Аня и Ваня отнесли к своим группам.
Предположим, что мы имеем ввод в виде двух списков, где каждый список представляет множество анекдотов для Ани и Вани соответственно. Вот как можно реализовать этот процесс на Python:
import numpy as np
def calculate_hihihi_score(anekdoty_Anya, anekdoty_Vanya):
# Создаем таблицу сопоставления анекдотов между группами
table = np.zeros((len(anekdoty_Anya) + 1, len(anekdoty_Vanya) + 1))
# Заполняем таблицу наблюдаемыми значениями
for a_group in anekdoty_Anya:
for v_group in anekdoty_Vanya:
observed = len(set(a_group).intersection(set(v_group)))
table[len(a_group)][len(v_group)] = observed
# Ожидаемое значение e(A, B)
total_anekdoty = sum(len(group) for group in anekdoty_Anya) * sum(len(group) for group in anekdoty_Vanya)
# Рассчитываем оценку совместимости
score = 0
for i in range(1, len(anekdoty_Anya) + 1):
for j in range(1, len(anekdoty_Vanya) + 1):
o_AB = table[i][j]
e_AB = (sum(len(a_group) for a_group in anekdoty_Anya) / total_anekdoty) * (sum(len(v_group) for v_group in anekdoty_Vanya) / total_anekdoty) * total_anekdoty
# Если ожидаемое значение e(A, B) равно нулю, пропускаем это слагаемое
if e_AB > 0:
score += abs(o_AB - e_AB) / e_AB
return score
# Пример использования:
anekdoty_Anya = [['анекдот1', 'анекдот2'], ['анекдот3']]
anekdoty_Vanya = [['анекдот1'], ['анекдот2', 'анекдот4']]
hos_score = calculate_hihihi_score(anekdoty_Anya, anekdoty_Vanya)
print(f"Оценка совместимости 'хи-хи-хи': {hos_score}")
В этом коде мы определили функцию calculate_hihihi_score, которая принимает два аргумента: списки анекдотов для Ани и Вани. Мы создаем таблицу для подсчета наблюдаемых значений, рассчитываем ожидаемые значения и затем подводим итог с помощью предложенной формулы.
Пример использования функции показан внизу, где вы можете подставить свои группы анекдотов, чтобы оценить совместимость.
Если у вас есть дополнительные вопросы или вам нужны более конкретные примеры, не стесняйтесь спрашивать!
