Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Инструкция по запуску

  1. Клонируйте репозиторий:
    git clone https://github.com/hololotl/customappTest.git
    cd customappTest/cmd
    go run . -rtp=0.6
    

Репорт по тестовому заданию

У нас есть последовательность клиента: $L1 = {x_1, x_2, x_3 .... x_n}$

Есть последовательность наших мультипликаторов $L2 = {m_1, m_2, m_3 ..... m_n}$

После преобразования у нас получается последовательность $L3 = {y_1, y_2, y_3 .... y_n}$ или же ${x_i * I(m_i > x_i )}$ для всех i от 1 до n

Rtp на стороне клиента равен $sum1/n$ или же среднее число в последовательности L3 при достаточно большом n

Rtp на стороне клиента можно записать как $E[x * I(m_i > x_i)]$ и он должен стремится к серверному rtp

Следовательно, $x * P(m > x)$ должен примерно равняться rtp, a это условие будет соблюдаться при $P(m>x) = rtp/x$. То есть функция распределения у нашей последовательности $F(m) = 1 - rtp/x$

Распределение Парето

$F(m) = 1 - rtp/x$ это распределение Парето, которое имеет вид $$ F(x) = 1 - (x_m/x)^k $$

Следовательно, мы можем выбрать $x_m = 1$ и $k = 1$

Обратное преобразование

Используя метод обратного преобразования $M = F^-1(U)$, где U это uniform распределение от 0 до 1. Получаем что $U = 1 - 1/x$ и из этого получаем что $x = 1/(1-u)$ так как m не может быть меньше 1, значит если U < 1-rtp мы выводим 1, в других случаях мы выводим 1/1-u

Тестирование сервиса

cd tests
go test -v

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages