This PDF 1.4 document has been generated by / Skia/PDF, and has been sent on pdf-archive.com on 02/02/2017 at 13:25, from IP address 94.153.x.x.
The current document download page has been viewed 247 times.
File size: 98.78 KB (2 pages).
Privacy: public file
Тестовое задание. Позиция Androidразрабочик
Задача
Смоделировать процесс зарядки роботов.
Условия
6 роботов сидят за круглым столом с 6 розетками напротив каждого.
Чтобы себя зарядить, необходимо использовать зарядное устройство, которое можно
собрать из двух частей: вилки и кабеля.
Одна часть лежит слева от каждого робота, вторая справа. Рядом сидящие роботы
конкурируют за владение этими частями.
Роботы берут каждую из частей зарядного устройства независимо, то есть сначала одной
рукой, а потом второй.
Роботы садятся за стол с 50% заряда. Зарядное устройство добавляет 10% заряда за
500 мс. Будем считать, что роботы заряжаются только интервалами кратными 500 мс.
Каждую секунду роботы тратят 10% заряда на функционирование.
Роботы могут иметь три
стратегии
:
1)
случайная
: если не полный заряд, дожидается доступности 2х частей устройства,
заряжается на 10% и засыпает на 100300мс (случайно) и повторяет;
2)
жадная
: если заряд меньше 60%, захватывает 2 части зарядного устройства и
заряжается до 100%, а если больше, то проверяет условие раз в 500 мс;
3)
джентльменская
: если заряд у одного из соседей меньше, чем у него, то уступит часть
зарядного устройства (засыпает на 200мс).
Дополнительные условия
Робот не может зарядится больше 100%. Если заряд опускается до 0 робот
отключается.
Считать, что роботы садятся за стол одновременно и действия происходят в реальном
времени.
Моделирование можно закончить, если все роботы зарядились полностью или
выключились. Возможна ситуация, например, когда 3 робота выключились а 3 зарядились
полностью.
Программа получает 6 параметров на вход 6 чисел, означающих стратегию робота: 1/2/3
соответственно.
Программа должна логгировать изменения состояний роботов (уровень заряда и
количество частей зарядного устройства).
Решение
Реализация может быть выполнена на любом из базовых языков программирования
(C++, C#, Java). Предпочтительно Java. Готовое решение запаковать в .zip архив,
содержащий все исходные коды (включая тесты, если они проводились), выполняемый
файл и файл readme.txt с вашими комментариями к заданию.
android_test_1.pdf (PDF, 98.78 KB)
Use the permanent link to the download page to share your document on Facebook, Twitter, LinkedIn, or directly with a contact by e-Mail, Messenger, Whatsapp, Line..
Use the short link to share your document on Twitter or by text message (SMS)
Copy the following HTML code to share your document on a Website or Blog