Практическая работа. 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 минут, после завершения тестирования будет доступна информация об общем числе тестов и числе пройденных тестов. Количество посылок в систему не ограничено. Штраф за повторные попытки не начисляется.