Лифтовая Сага — Захватывающая Задача Программирования


Лифты просты — верно? Они просто поднимаются и опускаются и перемещают людей. Но если вы программист, ожидание может подсказать мысль.можно ли это сделать лучше? The Elevator Saga-это игра, в которой вы можете планировать свои движения. Это нелегко, и это вызывает привыкание. 

Это хорошая JavaScript-симуляция транспортировки людей с помощью одного или нескольких лифтов. Вы пишете код, и лифты перемещаются соответственно. Так, например, начальная программа, поставляемая для начала работы, гласит::

{ init: функция(лифты, этажи) { var elevator = лифты[0];    // Давайте воспользуемся первым лифтом elevator.on(«холостой ход», функция() {   // Лифт простаивает, // так что давайте пройдемся по всем этажам //(или мы забыли один?)  elevator.goToFloor(0); elevator.goToFloor(1); }); }, update: функция(dt, лифты, этажи) { // Обычно нам здесь ничего не нужно делать }}

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

Этот алгоритм ошибочен, как упоминалось в комментариях, потому что есть три этажа, а не только два. Алгоритм терпит неудачу, поскольку лифт медленно забивается людьми, которым нужно выйти на втором этаже. 

Перед вами стоит задача улучшить алгоритм транспортировки необходимого количества людей за заданное время, и когда вы добьетесь успеха, вы сможете перейти к следующей задаче. Призов нет, но внутренняя награда заключается в том, чтобы показать, что вы можете изобрести алгоритм, который работает. Это также был бы возможный способ познакомить кого-то с программированием, но только с некоторой дополнительной помощью.  

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

Вопрос в том, насколько эффективно?

Позже вы также начнете работать с несколькими лифтами, и тогда это станет действительно интересным.

Вы можете найти полный API, который вы можете использовать при построении алгоритма на веб — сайте challenge, но если вас интересует какая-то теория, отточите свои навыки кодирования-Решите головоломку, чтобы узнать об алгоритме Карпа. 


Добавить комментарий