1
0
phone/README.md
vladimir-shperling 1a309187dc
Some checks failed
Merge core/template-android-project to this repo / merge-if-needed (push) Failing after 5s
Add task
2024-11-04 22:14:57 +07:00

4.0 KiB
Raw Permalink Blame History

Android Studio version

Практическая работа. 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.