Логическая задача про лифт

Ещё одна задач­ка на логи­ку, кото­рой про­грам­ми­сты муча­ют друг дру­га на собе­се­до­ва­нии. Счи­та­ет­ся, что она про­ве­ря­ет нестан­дарт­ное мыш­ле­ние. Но чу! Мож­но про­ве­рить нестан­дарт­ное мыш­ле­ние того, кто вам эту задач­ку зада­ёт!

Ситу­а­ция. Одна­жды в 20-этажном доме вандалы-математики раз­би­ли почти все кноп­ки в лиф­те, сохра­нив толь­ко две. От корот­ко­го замы­ка­ния послед­ние ста­ли рабо­тать так: одна под­ни­ма­ет лифт на 13 эта­жей, а вто­рая опус­ка­ет на 8.

Вопрос. Как жиль­цам попасть с 13-го эта­жа на 8-й?

Классическое решение

В этой зада­че есть момент из реаль­ной жиз­ни, кото­рый суще­ствен­но упро­ща­ет реше­ние. Но нач­нём с клас­си­че­ско­го отве­та.

Суть в том, что лифт не может выез­жать за гра­ни­цы эта­жей. То есть если на 13 эта­же мы нажмём кноп­ку «вверх», кото­рая долж­на под­нять лифт на 13 эта­жей, то он нику­да не поедет, пото­му что 13 + 13 = 26, а в доме столь­ко эта­жей нет. Зна­чит, един­ствен­ное, что нам оста­ёт­ся на пер­вом шаге — нажать «вниз»:

Вниз → 5 (13 - 8).

Здесь 5 — это номер эта­жа, на кото­рый при­е­хал лифт, а циф­ры в скоб­ках пока­зы­ва­ют началь­ный.

С 5 эта­жа мы можем уехать толь­ко вверх. Полу­ча­ет­ся, что каж­дый раз у нас есть толь­ко один вари­ант, на какую кноп­ку нажи­мать. Давай­те попро­бу­ем при­ме­нить этот прин­цип и посмот­реть, что полу­чит­ся:

Вниз → 5 (13 - 8).

Вверх → 18 (5 + 13).

Вниз → 10 (18 - 8).

Вниз → 2 (10 - 8).

Вверх → 15 (2 + 13).

Вниз → 7 (15 - 8).

Вверх → 20 (7 + 13).

Вниз → 12 (20 - 8).

Вниз → 4 (12 - 8).

Вверх → 17 (4 + 13).

Вниз → 9 (17 - 8).

Вниз → 1 (9 - 8).

Вверх → 14 (1 + 13).

Вниз → 6 (14 - 8).

Вверх → 19 (6 + 13).

Вниз → 11 (19 - 8).

Вниз → 3 (11 - 8).

Вверх → 16 (3 + 13).

Вниз → 8 (16 - 8).

В ито­ге за 19 поез­док мы добра­лись до нуж­но­го эта­жа. Самое инте­рес­ное, что по этим пра­ви­лам лифт даль­ше нику­да поехать не может: 8 + 13 = 21, а 8 - 8 = 0, что выхо­дит за гра­ни­цы эта­жей. При­дёт­ся всё-таки вызы­вать масте­ра и делать ремонт.

Хитроумное решение

Но есть и вто­рое реше­ние. Чаще все­го в жиз­ни быва­ет так: как толь­ко лифт доез­жа­ет до само­го верх­не­го или ниж­не­го эта­жа, он оста­нав­ли­ва­ет­ся, неза­ви­си­мо от того, сколь­ко ещё ему оста­ва­лось про­ехать. Это логич­но: дошли до гра­нич­ных зна­че­ний и оста­но­ви­лись. Вос­поль­зу­ем­ся этим и попро­бу­ем решить нашу зада­чу быст­рее:

Вниз→ 5 (13 - 8).

Вниз → 1 (5 - 8) → дое­ха­ли до пер­во­го эта­жа и оста­но­ви­лись.

А как добрать­ся с 1 эта­жа на 13 мы уже зна­ем из про­шло­го реше­ния:

Вверх → 14 (1 + 13).

Вниз → 6 (14 - 8).

Вверх → 19 (6 + 13).

Вниз → 11 (19 - 8).

Вниз → 3 (11 - 8).

Вверх → 16 (3 + 13).

Вниз → 8 (16 - 8).

Ито­го 9 поез­док. В два раза мень­ше, чем пер­вым спо­со­бом!
Граж­дане, бере­ги­те лифт!