1. Главная
  2. Библиотека
  3. Анализ хозяйственной деятельности
  4. Вам выпала почетная роль продуктового аналитика, которы...
Разбор задачи

Вам выпала почетная роль продуктового аналитика, который участвуюет в запуске мобильной игры в жанре тамагочи. В ней игрокам предстоит играть и развлекать своего питомца, а так же кормить его. Ваш продакт-менеджер хочет максимизировать число активных

  • Предмет: Анализ хозяйственной деятельности
  • Автор: Кэмп
  • #Системы показателей в анализе деятельности предприятия
  • #Бизнес-аналитика и большие данные в экономике
Вам выпала почетная роль продуктового аналитика, который участвуюет в запуске мобильной игры в жанре тамагочи. В ней игрокам предстоит играть и развлекать своего питомца, а так же кормить его. Ваш продакт-менеджер хочет максимизировать число активных

Условие:

Вам выпала почетная роль продуктового аналитика, который участвуюет в запуске мобильной игры в жанре тамагочи. В ней игрокам предстоит играть и развлекать своего питомца, а так же кормить его. Ваш продакт-менеджер хочет максимизировать число активных игроков, поскольку от нее зависит KPI (премия). Активным игроком на момент текущей даты мы называем игрока, который за последние 30 дней не менее 5 раз заходил в игру.

Вам предоставляется доступ к базе данных игры в формате tsv (данные разделены знаком табуляции).

Выведите наибольшее количество активных игроков, которое присутствовало в игре в некоторый день.

Формат ввода
Считывается текстовый файл input.txt

Формат данных

Столбцы Описание Тип данных\nclient_id Уникальный идентификатор клиента Целое число семизначное число\nmode Тип аккаунта Строка pro/lite\nmoney Количество денег на счете Целое неотрицательное число\npet Сытость питомца Целое число от 0 до 100\ntimestamp Время события, unixtime Целое число\naction Действие, совершенное игроком Строка: 'check_pet', 'add_money', 'dayly_task', 'nothing'\nmeta Параметры действия Строка json
Форматы json в meta:
\naction Возможные ключи Значениt\ncheck_pet\ttype Строка: 'feed' - кормить, 'play' - играть, 'check' - проверить\ncheck_pet\tgame Строка: 'hide-and-seek' - прятки, 'checkers' - шашки, '3-in-row' - 3 в ряд\ncheck_pet\tcost целое число, цена кормления\nadd_money\tmoney целое число, деньги с донатов\nadd_money\ttop_up целое число, деньги с донатов\ndayly_task\tgot_money деньги, получаемые за выполнение заданий
Формат вывода
Выведите наибольшее количество активных участников целым числом

Примечания
Активные клиенты текущего дня определяеются по последним 30 дням, включая текущий

Решение:

Наша цель – по данным журнала событий определить, в какой день в игре одновременно присутствовало наибольшее число активных игроков. Активным считается игрок, если за предыдущие 30 дней (включая текущий) он заходил в игру не менее 5 раз. Для этого можно решить задачу следующим образом.

  1. Считываем входной TSV-файл. Каждая строка содержит сведения об одном событии: идентификатор игрока, время в формате Unix timestamp и другие поля. Для нашей задачи важны только client_id и timestamp.

  2. Преобразуем timestamp в “день”. Это можно сделать, разделив значение timestamp на 86400 (число секунд в дне) с отбрасыванием дробной части. Таким образом, все события, произошедшие в один и тот же календарный день, будут иметь одинаковое значение дня.

  3. Сгруппируем данные по дню и для каждого дня подсчитаем, сколько событий (то есть “зайдений”) совершил каждый игрок в этот день.
    Например, можно создать словарь events_...

Внутри — полный разбор, аргументация, алгоритм решения, частые ошибки и как отвечать на каверзные вопросы препода, если спросит

Попробуй решить по шагам

Попробуй один шаг и продолжи в режиме обучения или посмотри готовое решение

Какой подход используется для эффективного подсчета количества активных игроков за скользящее 30-дневное окно?

Что нужно знать по теме:

Что нужно знать по теме

Алгоритм решения

Топ 3 ошибок

Что спросит препод

Выбери предмет