vladimir-shperling
1a309187dc
Some checks failed
Merge core/template-android-project to this repo / merge-if-needed (push) Failing after 5s
32 lines
4.0 KiB
Markdown
32 lines
4.0 KiB
Markdown
[![Android Studio version](https://img.shields.io/endpoint?url=https%3A%2F%2Fsicampus.ru%2Fgitea%2Fcore%2Fdocs%2Fraw%2Fbranch%2Fmain%2Fandroid-studio-label.json)](https://sicampus.ru/gitea/core/docs/src/branch/main/how-upload-project.md)
|
||
|
||
# Практическая работа. 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`. |