пятница, 30 января 2009 г.

Разминка на гибкость мышления

За последние дни надавали мне логических задачек на разных интервью, вот, попробуйте немного размять мозги :) Только без гугла!
В конце будет мегазадача, если честно, я не осилил.

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

2. Есть 8 бильярдных шаров, один из них немного тяжелее других. Надо за два взвешивания с использованием рычажных (аптечных) весов, определить какой шар тяжелее.

3. Рассчитать, сколько в Москве двухкомнатных квартир. Еще можно посчитать количество заправок.

4. Сколько и какие точки планеты позволяют пройти 1 км на Север, затем 1 км на Запад и 1 км на Юг и попасть в исходную точку.

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

6. Есть бикфордов шнур, который горит ровно 1 минуту. Но неравномерно.
Как с помощью двух таких шнуров отмерять 45 секунд?

7. Вот самая жесть :)
На языке 'Гуси' одного африканского племени словами записаны следующие числа. Язык - настоящий, реально действующий.

57 emerongo etano na itano na ibere
82 emerongo etano na etato na ibere
230 amagana abere na emerongo etato
308 amagana atato na itano na itato
705 amagana atano na abere na itano

Напишите на этом языке 28 и 837.


P.S. Большинство задач в общем-то известные, но некоторые для меня например были совсем новые. Особенно седьмая.

8 коммент.:

Pavel комментирует...

1, 2, 4 - лёгкие
3 - проверка способности к рассуждению
5 - если нужно просто решение, то задача лёгкая. Доказательство оптимальности решения требуется?
6 - что-то туго. Шнуры идентичные?
7 - летять гуууси )))

Dmitry Kandalov комментирует...

Спасибо, отличные загадки :)

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

Думал час над 7й не осилил :( Буду попробовать ещё.

Pavel комментирует...

Хм. Я бы первую решал немного иначе:

Один выключатель не трогать, второй включить, третий включить, подержать включённым и выключить.

Зная, что лампа остаётся тёплой после работы, получаем ответ :)

Анонимный комментирует...

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

Anton Shevchuk комментирует...

7-ая меня порадовала:

28 - emerongo ebere na itano na itato
837 - amagana atano na atato na emerongo etato na itano na ibere


i- - еденицы
e- - десятки
a- - сотни

bere = 2
tato = 3
tano = 5

vsavkin комментирует...

Меня 5-я в ступор ввела.
"регистры для хранения информации использовать нельзя" - это значит, что никаких переменных вводить в алгоритм нельзя, счётчик цикла даже не сделаешь. Я правильно понял? Как в таких условиях можно программировать?!.. :)

Анонимный комментирует...

Дмитрий, вы не могли бы пояснить про ограничение задачи про роботов на беспонечной прямой? Ведь vsavkin прав: для цикла нужно ограничение, где-то хранящееся.

Дмитрий Лобасев комментирует...

Отгадка там простая - роботы могут двигаться например так: два шага вперед, один назад, проверка есть ли под ногами парашют. Если есть - начинаем просто идти ровно в противоположную сторону