Four To The Floor

Four To The Floor

Elementary+
EN Русский UK

Миссия создана при поддержке компании Ajax .

В 2011 году Ajax Systems была лишь амбициозной идеей. Сегодня наши системы безопасности продаются в 90 странах и защищают более 350 тыс. человек. За последние 3 года компания выросла в 30 раз и уже реализовала более двух миллионов устройств. Каждое разработано, произведено и протестировано в Киеве.

Ajax, как система, это не просто набор датчиков и централи, а удобные и красивые приложения, которые помогают пользователям настраивать систему и управлять своей безопасностью. В команду, которая...

Когда речь заходит о необходимости детекции движения, в нашем распоряжении имеются самые разные типы датчиков, имеющих общую черту - они отслеживают изменения состояния среды в "поле зрения". Если задуматься не просто о фиксировании движения в целом, но о детекции появления/движения человека, можно быстро прийти к мысли о том, что оптимальным решением был бы такой тип датчика, который регистрирует изменения какой-либо характеристики, свойственной как человеку, так и окружающей его среде. И такая характеристика есть. Любой объект с ненулевой (по шкале Кельвина) температурой испускает тепловое излучение . Инфракрасное излучение, в свою очередь, является частью общего спектра теплового излучения. Плотность потока излучения зависит от типа объекта, его площади и температуры. Хотя человеческий глаз не воспринимает инфракрасное излучение, оно, тем не менее, довольно интенсивное. Если поднести сбоку ладонь к чашке с горячим кофе, то тепло, которое можно почувствовать, и демонстрирует наглядно мощность теплового (инфракрасного) излучения.

room

На детекции инфракрасного излучения PIR-системы (освещения и/или безопасности) и работают. Представим себе закрытую комнату и PIR-датчик, установленный на потолке и "смотрящий" вниз. Поскольку все объекты излучают тепловую энергию, все предметы в комнате создают относительно постоянный фоновый уровень инфракрасного излучения, который регистрируется датчиком. Довольно часто PIR-системам повышают порог чувствительности для того, что они не реагировали, например, на домашних животных. Но даже с учётом повышенного порога чувствительности система способна распознать появление человека в поле видимости датчика, поскольку человеческое тело, в среднем, испускает тепловое излучение мощностью ~1кВт, поэтому, когда человек оказывается в поле видимости датчика, система регистрирует значительное увеличение теплового излучения и реагирует, например, уведомляя пользователя о проникновении или включая свет.


PIR sensor


Теперь мы можем перейти непосредственно к задаче этой миссии. Даются размеры комнаты и список PIR-датчиков, установленных на потолке. Требуется определить, вся ли комната входит в зону видимости датчиков (вернуть True) или нет (вернуть False). Нижний левый угол прямоугольника (комнаты) совпадает с точкой начала координат O , верхний правый угол определяется длиной W и шириной H . Каждый датчик определяется координатами x i и y i точки, где он установлен, и его радиусом действия R i .

Входные данные: Два аргумента:

  • список, содержащий значения длины и ширины комнаты (целочисленные) [W, H]
  • список, содержащий информацию координаты и радиусы датчиков (целочисленные)
    [[x i , y i , R i ], [x i+1 , y i+1 , R i+1 ], ....., [x n , y n , R n ]]

Выходные данные: True or False.

Примеры:

is_covered([200, 150], [[100, 75, 130]]) == True                                   #example #1
is_covered([200, 150], [[50, 75, 100], [150, 75, 100]]) == True                    #example #2
is_covered([200, 150], [[50, 75, 100], [150, 25, 50], [150, 125, 50]]) == False    #example #3

PIR sensor

Предварительные условия:
Все заданные параметры комнаты и датчиков являются целочисленными.

  • if (int - 10e-6 < f < int + 10e-6) then (f == int)
  • H ∈ (0; 1000]
  • W ∈ [H; 4*H]
  • x i ∈ [0; W]
  • y i ∈ [0; H]
  • R i ∈ (0; 1600]
  • n ∈ [1; 10]
You should be an authorized user in order to see the full description and start solving this mission.
Settings
Code:
Other:
Invalid hot key. Each hot key should be unique and valid
Hot keys:
CheckiO Extensions

CheckiO Extensions allow you to use local files to solve missions. More info in a blog post.

In order to install CheckiO client you'll need installed Python (version at least 3.8)

Install CheckiO Client first:

pip3 install checkio_client

Configure your tool

checkio --domain=py config --key=

Sync solutions into your local folder

checkio sync

(in beta testing) Launch local server so your browser can use it and sync solution between local file end extension on the fly. (doesn't work for safari)

checkio serv -d

Alternatevly, you can install Chrome extension or FF addon

checkio install-plugin
checkio install-plugin --ff
checkio install-plugin --chromium

Read more here about other functionality that the checkio client provides. Feel free to submit an issue in case of any difficulties.

Pair Programming (Beta-version)

Welcome to Pair Programming! Engage in real-time collaboration on coding projects by starting a session and sharing the provided unique URL with friends or colleagues. This feature is perfect for joint project development, debugging, or learning new skills together. Simply click 'Start Session' to begin your collaborative coding journey!

Waiting for Pair Programming to start...

You are trying to join a pair programming session that has not started yet.

Please wait for the session creator to join.

Waiting for Pair Programming to reconnect...

It looks like the creator of the pair programming session closed the editor window.

It might happen accidentally, so that you can wait for reconnection.

×
 
 
<< <
> >>
exec show

Whats Next?

Free accounts will see Best CheckiO solutions with some delay.
Best Solutions will be opened in a moment
Become Awesome and Don't wait
The next stage is ""
Will be activated in
View More Solutions Random Review Solutions Go to the next mission