💨 Тестовое задание на позицию Data Scientist Wargaming



Задание «Обменные курсы»

У игроков Кореи существует возможность покупать внутри-игровую валюту (gold) с помощью веб-интерфейса (премиум-магазина). При этом в магазине представлено лишь 6 типов пакетов с внутри-игровой валютой, различающихся по количеству gold. Типы пакетов (packages) и их реальная стоимость (в корейских вонах) для игроков представлена в таблице ниже



Package Price, KRW

1250 gold 7485 KRW

2900 gold 17365 KRW

7000 gold 36270 KRW

12000 gold 60000 KRW

21500 gold 98625 KRW

30000 gold 132745 KRW


Со временем было принято решения о расширении функционала премиум-магазина: было решено добавить возможность покупки пакета с любым количеством gold. При этом было построено правило перевода gold в реальные деньги (корейские воны), которое описано в таблице ниже



Gold Amount Exchange Rate

Amount ≤ 2900 gold 0,167 gold per 1 KRW

2900 gold < Amount ≤ 7000 gold 0,193 gold per 1 KRW

7000 gold < Amount ≤ 12000 gold 0,2 gold per 1 KRW

12000 gold < Amount ≤ 21500 gold 0,218 gold per 1 KRW

Amount > 21500 gold 0,226 gold per 1 KRW




То есть, пакеты с количеством внутри-игровой валюты, не превышающие 2900 gold, оцениваются согласно соотношению 0,167 gold за 1 корейский вон.



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



Необходимо формализовать и придумать непрерывную функцию, которая записывалась бы в виде формулы (без if, поскольку технические средства не умеют выполнять данную операцию, где предполагалось использовать полученное решение), описанное выше правило таким образом, чтобы после двух нововведений сохранилась описанная выше ценовая политика, но при этом была возможность как покупать любое количество gold, так и пополнять аккаунт любым количеством денег (корейских вон).



Решение



@machinelearning_interview