Gena-and-phones/README.md

38 lines
5.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Практическая работа. Gena's Phones
Гена любит создавать и поддерживать эффективные и надёжные распределённые системы хранения и обработки данных, и сегодня на работе ему поручили проанализировать новую распределённую автоматизированную систему тестирования Android приложений на предмет отказоустойчивости.
Гена знает, что при реальной работе моменты отправки посылок в систему тестирования приложений могут хорошо описываться пуассоновским процессом. Сформировав реалистичный сценарий работы с системой на основе статистических закономерностей её использования, он решил провести нагрузочное тестирование.
Вместо моделирования количества посылок в систему за определённый промежуток времени (эта величина может описываться распределением Пуассона), будет удобнее рассчитывать временные интервалы между **k** посылками в систему (эта величина имеет распределение Эрланга).
Гена будет ставить секундомер, ориентируясь на число в очередной строке списка, и с определённой частотой отправлять решения нескольких практических задач в систему. Конечно, он автоматизирует сам процесс отправки решений, но времени на другую важную часть у него не останется, поэтому он просит вас помочь ему с генерацией списка n случайных чисел.
Моделировать распределенную по Эрлангу случайную величину можно с помощью формулы (1).
$\xi^{мод}\left( k, \lambda \right) = -\frac{1}{\lambda}\sum_{i=1}^{k}\ln \gamma_{i}, \gamma_{i}\sim R\left[ 0,1 \right]$
Здесь $R\left[ 0,1 \right]$ обозначает равномерное распределение на отрезке $\left[ 0,1 \right]$, а $\ln \gamma$ натуральный логарифм числа $\gamma$. Можно считать, что $\gamma_{i}\in (0, 1)$, так как вероятность попасть в 0 или 1 равна 0.
Интерфейс приложения должен содержать элементы, перечисленные в табл. 1.
| № | View | id | Описание |
| :-: | ---- | -- | -------- |
| 0 | *EditText* | `size_param` | n |
| 1 | *EditText* | `shape_param` | k |
| 2 | *EditText* | `rate_param` | λ |
| 3 | *Button* | `get_random_nums` | |
| 4 | *RecyclerView* | `generated_list` | |
| 5 | *TextView* | `random_number_result` | |
*Таблица 1. Элементы пользовательского интерфейса*
При вводе двух чисел: значения параметра «формы» **k** и параметра **λ** и нажатия на кнопку с `@id/get_random_nums` открывается новая активность приложения, в которой имеется список *RecyclerView* с текстовыми полями с идентификаторами `@id/random_number_result`.
Рекомендуется использовать Android Studio Chipmunk 2021.2.1. В проекте gradle version 7.5, gradle plugin version 7.3.0, Java SE 11.
Сдать в систему тестирования необходимо zip архив, в корневом каталоге которого располагается дополненный проект Android Studio/IntelliJ IDEA. После загрузки zip архива приложение будет запущено в системе автоматического тестирования для проверки на соответствие техническому заданию.
Допускается использовать язык Java и/или Kotlin. При сборке проекта вcе изменения в файле build.gradle будут проигнорированы будут использованы зависимости только из шаблона-заготовки; не изменяйте пакет приложения.
Тестирование одной посылки может длиться до 5 минут, после завершения тестирования будет доступна информация об общем числе тестов и числе пройденных тестов. Количество посылок в систему не ограничено. Штраф за повторные попытки не начисляется.