Два человека подходят к реке

Как перевезти гопников и философов с одного берега на другой Олимпиадная задача для старшеклассников. Но справитесь ли вы с ней? Это кавер-версия задачи "волк, коза и капуста" - классической задачи на алгоритмическое мышление. Она очень проста для разработчиков, и если вы сможете решить ее с первого раза, то можете гордиться собой, ведь только 1 из 10 человек решает ее правильно с первого раза.

Почему вы должны уметь решать эти задачи: это помогает в алгоритмах сортировки и успешном прохождении собеседований в IT-компаниях. Также важно уметь обосновать свой ход мыслей. На одном берегу реки находятся шесть человек: три гопника и три философа. Пока они ведут непринужденные беседы об экзистенциальном, но рано или поздно им всем придется оказаться на другом берегу.

Есть одна лодка, в которой могут поместиться только два человека, но философы не могут управлять лодкой, а гопники могут. Кроме того, нельзя оставлять на одном берегу больше философов, чем гопников, потому что тогда философы взорвут умы гопников, рассуждая о природе вещей.

Как переправить всех через реку? Для первого путешествия есть пять вариантов: один гопник не подходит, потому что на берегу больше философов, и они снесет крышу; два гопника не подходят по той же причине; один или два философа тоже не подходят, потому что не могут управлять лодкой; философ и гопник - единственный вариант, который остается.

Поэтому, чтобы переправить всех на другой берег, нужно выбрать одного гопника.

Так первое плавание доставляет пару философ-гопник на другой берег: Теперь лодку нужно как-то отправить обратно. Но поскольку философ не знает, как ею управлять, он остается на берегу, а гопник возвращается обратно. Философы никому не взрывают мозг: Теперь давайте прикинем варианты следующего путешествия.

Мы не можем послать двух гопников, иначе философы останутся в большинстве, и на левом берегу будет полный экзистенциализм. Поэтому снова философ и гопник плывут на другой берег. Если этого не сделать, то он останется с двумя философами на том берегу, и они увлекутся разговорами об идеях вещей: таким образом, на том берегу сидят два философа, а на этом - один философ и три бандита, на которых он вряд ли сможет повлиять разговорами: теперь надо выбрать, кто поедет на этот раз.

Мы можем снова послать философа и гопника, но тогда на том берегу будет три философа. И невозможно безопасно переправить остальных гопников по одному - философы всегда будут в большинстве. Поэтому есть только один вариант: отправить в путь двух гопников. В итоге на том берегу все будут равны, и все пройдет гладко: Но лодку надо как-то отправить на другой берег.

Посадить на нее одного гопника невозможно, потому что второй будет в меньшинстве среди философов. Возвращаться назад двум гопникам тоже не вариант, потому что они только что приплыли. Поэтому философ и гопник возвращаются назад: Теперь единственный безопасный вариант - отправить двух гопников на другую сторону: Мы отправим одного гопника обратно. Чтобы не вылететь из лодки, он позовет в нее философа, например, фразой: "Что вы думаете о солипсизме?

Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что тебе нравится. Затем идут программы по трудоустройству.

Следующее - это программы по трудоустройству.

Навигация

Comments

  1. Как часто человеку приходиться выбирать между синицей в руках и журавлем, парящим над головой. Но на самом деле он выбирает между страхами. Он боится оставить все так, как есть, если его это не устраивает. И боится, что не добьется того, на что надеется, но потеряет синицу.

  2. Жаль, что сейчас не могу высказаться - вынужден уйти. Но вернусь - обязательно напишу что я думаю по этому вопросу.