Логические задачи

Флейм, он и есть флейм. В общем, болтаем обо всем, что не попало в другие разделы.

Модератор: модераторы

Аватара пользователя

Автор темы
Falcon
Сообщений: 15207
Стаж: 21 год 2 месяца
Реальное имя: Сергей
Желаемая форма обращения: Как хотите к себе
Откуда: Отсюда
Благодарил (а): 1780 раз
Поблагодарили: 3309 раз
Возраст: 52
Контактная информация:

Логические задачи

Сообщение Falcon » 24.07.2014, 14:40

http://habrahabr.ru/post/230881/

Не знаю, как у вас, но у меня любимая часть интервью — логические задачи.
Довелось пройти немало собеседований на вакансию разработчика, поэтому набралась небольшая коллекция.
Спешу поделиться с вами!

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

1) Человек построил дом, все стены которого смотрят на юг. К нему в дом забрался медведь. Какого цвета медведь?

2) На столе 12 монет, одна из которых фальшивая. Она отличается от остальных лишь по массе. За какое минимальное число взвешиваний на чашечных весах можно обнаружить фальшивую монету?

3) В первой изолированной комнате — три лампочки, во второй — три переключателя от каждой из них. Разрешается произвольно дёргать переключатели, но перейти из второй комнаты в первую можно лишь один раз. Как узнать, от какой лампочки каждый переключатель, если до потолка можно достать рукой?

4) Даны две веревки и спички. Каждая из верёвок сгорает за 1 час, но горят они неравномерно, поэтому нельзя точно узнать, какая часть веревки за какое время сгорит. Как отмерить при помощи этих веревок интервал в 45 минут?

5) В офис привезли три автомата с напитками. Первый выдаёт чай, второй кофе, а третий случайным образом чай или кофе. Стакан любого напитка стоит одну монету. На каждом автомате есть наклейка с названием продукта, который он выдаёт. Так получилось, что на заводе перепутали местами наклейки и на каждом автомате оказалась неправильная. Сколько нужно потратить монет, чтобы выяснить, где какой автомат?

6) Есть два абонента A и B, почтальон C и открытый сейф с двумя замками. У каждого абонента есть ключ от одного из замков. Если передавать ключ через почтальона, то он может сделать дубликат. Как передать письмо от одного абонента к другому через почтальона, чтобы тот не смог его прочитать? Как изменится алгоритм, если в сейфе сделать небольшое отверстие для вложения письма?

7) Путник находится в лесу в какой-то случайной точке. Известно, что площадь леса равна S, а форма может быть совершенно произвольная, однако в лесу нет полян. По какой траектории нужно двигаться путнику, чтобы гарантировано выйти из леса затратив минимальный по длине маршрут?

8) Путешественник прошёл один километр на юг, затем один километр на запад, а после один километр на север и вернулся в исходную точку. Сколько существует таких мест на земле? Подсказка: больше одного…

9) Есть огромный файл в несколько гигабайт, в котором записаны целые числа. Нужно записать в другой файл все эти числа в отсортированном порядке. Как это эффективно сделать?

10) Есть огромный файл в несколько гигабайт, в котором записаны целые числа. Известно, что каждое число встречается два раза, но есть единственное число, которое встречается один раз. Предложите эффективный алгоритм для поиска этого числа. Как изменится алгоритм, если каждое число будет встречаться в файле чётное число раз, а единственное из них нечётное число раз?

11) Есть огромный файл, в котором записаны все целые числа из диапазона от 1 до 10^9 в произвольном порядке. То есть в файле есть абсолютно все числа из этого диапазона, и встречаются они лишь по одному разу. Однако одно число встречается два раза. Как найти это число эффективным образом?

12) Сколькими способами можно разложить на 6 целых множителей 1 000 000?
Если будут спрашивать - меня нет на планете.

Аватара пользователя

Pinhead
Сообщений: 6314
Стаж: 18 лет 9 месяцев
Благодарил (а): 17 раз
Поблагодарили: 1455 раз

Re: Логические задачи

Сообщение Pinhead » 24.07.2014, 16:09

1. Белого. Дом на северном полюсе.
2. За четыре. Делим монеты на три части по четыре монеты, взвешиваем их между собой. Это два взвешивания. Ту часть, которая легче, делим пополам и взвешиваем. Это третье взвешивание. Остается две монеты, одна из них фальшивая.
3. Один выключатель не трогать, другой включить и оставить, третий включить на какое-то время и выключить. Зайти в комнату, одна лампочка будет гореть, две другие пощупать рукой, одна будет теплая, другая холодная.

Дальше мне неохота думать, пусть другие пишут.
"Какая горькая память - память о том,
О том, что будет потом."

Аватара пользователя

Весельчак Ы
Сообщений: 1424
Стаж: 17 лет 7 месяцев
Желаемая форма обращения: Как хотите к себе
Откуда: СССР
Благодарил (а): 248 раз
Поблагодарили: 272 раза
Возраст: 51
Контактная информация:

Re: Логические задачи

Сообщение Весельчак Ы » 24.07.2014, 17:44

1. Согласно Википедии, "глубина океана на Северном полюсе составляет 4 261 метр (по измерениям глубоководного аппарата «Мир» в 2007 году) или 4087 метров (по измерениям американской подводной лодки «Наутилус» в 1958 году)".

2. Видимо, для 12 монет нужно 3 взвешивания. См. напр. Г. Шестопал «Как обнаружить фальшивую монету», «Квант» №10, 1979 г.

7. «Без полян» естественно понимать как односвязность. А искомый маршрут (конечной длины), видимо, существует для выпуклых лесов, да и доказательство минимальности длины предложенного маршрута вряд ли уместно на собеседовании.

9. Мне тоже интересно. Мне кажется, что пузырьковый алгоритм вряд ли можно назвать эффективным для сортировки файла в несколько гигабайт с числами, которые могут иметь достаточно большой диапазон значений. А его модификации, наверное, достаточно наворочены, известны лишь специалистам да и дают не такое уж и большое улучшение. «Онлайн» сортировка тоже не представляется мне особо эффективной.

Аватара пользователя

Mich
Сообщений: 3948
Стаж: 15 лет 7 месяцев
Реальное имя: Михаил
Skype: Mich-Mych
Желаемая форма обращения: На "ты"
Откуда: из будущего...
Благодарил (а): 1495 раз
Поблагодарили: 879 раз
Возраст: 50
Контактная информация:

Re: Логические задачи

Сообщение Mich » 24.07.2014, 21:14

Pinhead писал(а):За четыре. Делим монеты на три части по четыре монеты, взвешиваем их между собой. Это два взвешивания. Ту часть, которая легче, делим пополам и взвешиваем. Это третье взвешивание. Остается две монеты, одна из них фальшивая.
Если мы не знаем какой является фальшивая монета: лёгкой или тяжёлой, нам придётся для выяснения этого произвести ещё два "обменных" взвешивания. Впрочем это выходит за рамки логических задач.
Лишь тот способен добрым быть, кому пришлось от злобы выть,
Лишь тот познает дружбы цену, кто испытал друзей измену,
И лишь тому любовь дана, кто ненависть познал сполна.

Аватара пользователя

Evgenij
Сообщений: 1795
Стаж: 16 лет 6 месяцев
Желаемая форма обращения: На "ты"
Благодарил (а): 452 раза
Поблагодарили: 362 раза
Возраст: 44

Re: Логические задачи

Сообщение Evgenij » 24.07.2014, 22:17

Mich писал(а):Если мы не знаем какой является фальшивая монета: лёгкой или тяжёлой
Это должно стать понятно во время первых двух взвешиваний - каких частей, тяжелых или легких, будет две, а каких одна.
А сам я нифига не разгадал!!!

Добавлено спустя 4 минуты 20 секунд:
Pinhead писал(а):Зайти в комнату, одна лампочка будет гореть, две другие пощупать рукой, одна будет теплая, другая холодная.
Вам Шерлок Холмслм работать надо!!!
На самом деле здорово придумано!
Вот мимо этого мухомора мы уже кажется проходили.

Аватара пользователя

Автор темы
Falcon
Сообщений: 15207
Стаж: 21 год 2 месяца
Реальное имя: Сергей
Желаемая форма обращения: Как хотите к себе
Откуда: Отсюда
Благодарил (а): 1780 раз
Поблагодарили: 3309 раз
Возраст: 52
Контактная информация:

Re: Логические задачи

Сообщение Falcon » 25.07.2014, 01:07

Evgenij писал(а):Вам Шерлок Холмслм работать надо!!!
На самом деле здорово придумано!
А кто, по твоему, скрывается под ником Пинхед?!
Если будут спрашивать - меня нет на планете.

Аватара пользователя

Pinhead
Сообщений: 6314
Стаж: 18 лет 9 месяцев
Благодарил (а): 17 раз
Поблагодарили: 1455 раз

Re: Логические задачи

Сообщение Pinhead » 25.07.2014, 04:12

Mich писал(а):Если мы не знаем какой является фальшивая монета: лёгкой или тяжёлой, нам придётся для выяснения этого произвести ещё два "обменных" взвешивания. Впрочем это выходит за рамки логических задач.
Это само собой. Вообще, задача сформулирована некорректно. Так как неизвестно, знаем ли мы вообще правильный вес монеты, к тому же в условии задачи отсутствует слово "гарантированно". Потому что, зная правильный вес монеты, можно и за одно взвешивание определить - настоящая монета или нет. Просто, если повезет попасть сразу на фальшивую.
Это задачи из серии "как с помощью осциллографа и секундомера определить высоту этажа, на котором ты находишься" или "как с помощью ботинок и секундомера определить объем данной комнаты".

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


пацак
Сообщений: 1933
Стаж: 21 год 2 месяца
Желаемая форма обращения: На "ты"
Откуда: Казахстан
Благодарил (а): 1817 раз
Поблагодарили: 226 раз

Re: Логические задачи

Сообщение пацак » 25.07.2014, 08:59

1) никакого ... медведи на полюсе не водятся ! правда пришлось для этого залезть в википедию :oops:
зато сразу нашлась другая логическая задача -
почему белые медведи не едят пингвинов ! :P

3) ну про лампочки я сам догадался, или вспомнил, слышал когда то такую в детстве

8 . ну пусть будет два, географический и магнитный полюс, хотя скорее всего неправильно, потому что ответ какой не красивый :(

Добавлено спустя 1 час 19 минут 51 секунду:
Mich писал(а):Если мы не знаем какой является фальшивая монета: лёгкой или тяжёлой,
я с вас балдею ! какой умный дурак станет делать фальшивую монету тяжелее чем настоящая :o .. это ж каким надо быть "двинутым" или вернее меценатом, чтобы кому то подсунуть вместо 1кг золота, полтора и при это думать что ты обманул покупателя :lol:

Добавлено спустя 23 минуты 16 секунд:
Весельчак Ы писал(а):2. Видимо, для 12 монет нужно 3 взвешивания. См. напр. Г. Шестопал «Как обнаружить фальшивую монету», «Квант» №10, 1979 г.
а вот это зря !!! :evil: тут предлагается свой головой подумать, а не умение пользоваться википедией ... хотя каюсь сам грешен местами

кстати ... да , три взвешивания гарантированно выявляет фальшивую (лёгкую) монету
эту загадалку я тоже в детстве видел, просто пришлось напрячь мОзги чтобы вспомнить
делим монеты пополам и взвешиваем, получаем кучу из 6 в которой фальшивка, делим уже эту кчу пополам и сравниваем, получае 3 с фальшивой и последнее третье взвешивание даёт нам правильный ответ
111111 111110 сравниваем 111 110 получаем 110 ну и тут уже либо 11 и 0 либо 10 и 1 .. тут уже даже я бы догадался !

хот-я-я-я ... наверно можно и так
111 111 111 110 - сравниваем получаем кучу из 111110 делим сравниваем получаем 110 и последнее третье сравнивание мы её опять нашли

БЛИН , совсем забыл ... весы должны быть такими
Изображение
если весы электронные то ниифига не получится !
бога нет ! есть вера в него !

Аватара пользователя

Mich
Сообщений: 3948
Стаж: 15 лет 7 месяцев
Реальное имя: Михаил
Skype: Mich-Mych
Желаемая форма обращения: На "ты"
Откуда: из будущего...
Благодарил (а): 1495 раз
Поблагодарили: 879 раз
Возраст: 50
Контактная информация:

Re: Логические задачи

Сообщение Mich » 25.07.2014, 17:45

пацак писал(а): какой умный дурак станет делать фальшивую монету тяжелее чем настоящая
О! Вы не знаете фальшивомонетчиков. :D
Лишь тот способен добрым быть, кому пришлось от злобы выть,
Лишь тот познает дружбы цену, кто испытал друзей измену,
И лишь тому любовь дана, кто ненависть познал сполна.

Аватара пользователя

Pinhead
Сообщений: 6314
Стаж: 18 лет 9 месяцев
Благодарил (а): 17 раз
Поблагодарили: 1455 раз

Re: Логические задачи

Сообщение Pinhead » 01.08.2014, 20:12

До меня только сейчас допёрло, как за одно взвешивание из трёх монет определить фальшивую! Блин, вот я тормоз!
Тогда действительно получается три взвешивания.
"Какая горькая память - память о том,
О том, что будет потом."


пацак
Сообщений: 1933
Стаж: 21 год 2 месяца
Желаемая форма обращения: На "ты"
Откуда: Казахстан
Благодарил (а): 1817 раз
Поблагодарили: 226 раз

Re: Логические задачи

Сообщение пацак » 02.08.2014, 09:32

поздравляю , теперь ты тоже этот ... не тормоз :D
бога нет ! есть вера в него !

Аватара пользователя

Mich
Сообщений: 3948
Стаж: 15 лет 7 месяцев
Реальное имя: Михаил
Skype: Mich-Mych
Желаемая форма обращения: На "ты"
Откуда: из будущего...
Благодарил (а): 1495 раз
Поблагодарили: 879 раз
Возраст: 50
Контактная информация:

Re: Логические задачи

Сообщение Mich » 02.08.2014, 17:48

Pinhead писал(а):Тогда действительно получается три взвешивания.
А вот до меня так и не дошло. Как не выёживался, всё равно четыре взвешивания получаются... Тормоз, наверное...
Лишь тот способен добрым быть, кому пришлось от злобы выть,
Лишь тот познает дружбы цену, кто испытал друзей измену,
И лишь тому любовь дана, кто ненависть познал сполна.

Аватара пользователя

Pinhead
Сообщений: 6314
Стаж: 18 лет 9 месяцев
Благодарил (а): 17 раз
Поблагодарили: 1455 раз

Re: Логические задачи

Сообщение Pinhead » 03.08.2014, 00:16

Mich писал(а):А вот до меня так и не дошло. Как не выёживался, всё равно четыре взвешивания получаются... Тормоз, наверное...
Я время от времени мысленно возвращался. И так и сяк прикидывал, пытался даже прибавлять монеты из проверенных. А потом дошло, что нужно не прибавить, а ОТНЯТЬ! Осталось три монеты, одну из них откладываем с сторону, остаётся две, кладём их на чаши весов. Если вес одинаковый, значит отложенная монета фальшивая, если разный, соответственно, фальшивая та, которая легче.
"Какая горькая память - память о том,
О том, что будет потом."


пацак
Сообщений: 1933
Стаж: 21 год 2 месяца
Желаемая форма обращения: На "ты"
Откуда: Казахстан
Благодарил (а): 1817 раз
Поблагодарили: 226 раз

Re: Логические задачи

Сообщение пацак » 03.08.2014, 05:04

да ребята !!! это вам не политика ... тут думать надо :D

5) уменя получилось 4 монеты, но при условии что третий автомат выдаёт напитки не случайно, а почерёдно чай-кофе-чай-кофе и т.д.
аа-а-а ... нужно внимательно читать задачу ... 3 монеты хватит ! и пусть третий автомат выдаёт случайно хоть квас ! :D
бога нет ! есть вера в него !

Аватара пользователя

Mich
Сообщений: 3948
Стаж: 15 лет 7 месяцев
Реальное имя: Михаил
Skype: Mich-Mych
Желаемая форма обращения: На "ты"
Откуда: из будущего...
Благодарил (а): 1495 раз
Поблагодарили: 879 раз
Возраст: 50
Контактная информация:

Re: Логические задачи

Сообщение Mich » 03.08.2014, 18:48

Мы делим монеты на три группы по четыре. Первое взвешивание: если две группы равны, то фальшивка в третьей и мы должны произвести второе взвешивание третьей группы с любой из предыдущих, так как не знаем больше или меньше стандарта вес фальшивой монеты. Тоже самое мы должны сделать и в случае если вес будет разный: мы должны взвесить любую из групп с оставшейся. Опять два взвешивания. Осталась одна группа из четырёх монет. Делим её по две и взвешиваем: та которая легче или тяжелее (какая именно мы установили во втором взвешивании) содержит фальшивку. Это третье. Осталось две монеты. Делаем четвёртое взвешивание и выявляем фальшивку.
Разделим монеты на четыре группы по три. Взвешиваем попарно. Получаем два взвешивания и выявленную разновесную пару. Что бы выяснить какая группа разновесной пары содержит фальшивку (так как мы не знаем тяжелее она или легче) производим контрольное взвешивание любой группы из разновесной пары с любой группой из равновесной пары. Итого три взвешивания. Поучаем группу из трёх монет. Производим взвешивание (четвёртое). Если пара равновесная, то фальшивка - третья монета. Если пара разновесная - фальшивка та, которая легче или тяжелее в зависимости от результатов третьего (контрольного) взвешивания. Опять получаем четыре взвешивания. Может я что-то не учёл? *DONT_KNOW*
Лишь тот способен добрым быть, кому пришлось от злобы выть,
Лишь тот познает дружбы цену, кто испытал друзей измену,
И лишь тому любовь дана, кто ненависть познал сполна.

Аватара пользователя

Evgenij
Сообщений: 1795
Стаж: 16 лет 6 месяцев
Желаемая форма обращения: На "ты"
Благодарил (а): 452 раза
Поблагодарили: 362 раза
Возраст: 44

Re: Логические задачи

Сообщение Evgenij » 03.08.2014, 19:58

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

Аватара пользователя

Pinhead
Сообщений: 6314
Стаж: 18 лет 9 месяцев
Благодарил (а): 17 раз
Поблагодарили: 1455 раз

Re: Логические задачи

Сообщение Pinhead » 03.08.2014, 20:13

Mich писал(а):Мы делим монеты на три группы по четыре.
Нет же! Делим пополам, потом ещё пополам, потом оставшиеся три монеты взвешиваем по методу, указанному выше. Я с самого начала разделил их пополам, но уткнулся в эти проклятые три монеты, и решил делить на три части. А в действительности надо пополам делить.

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

Аватара пользователя

Evgenij
Сообщений: 1795
Стаж: 16 лет 6 месяцев
Желаемая форма обращения: На "ты"
Благодарил (а): 452 раза
Поблагодарили: 362 раза
Возраст: 44

Re: Логические задачи

Сообщение Evgenij » 03.08.2014, 21:11

Это тоже самое, что и на четыре части по три.
Вот мимо этого мухомора мы уже кажется проходили.


пацак
Сообщений: 1933
Стаж: 21 год 2 месяца
Желаемая форма обращения: На "ты"
Откуда: Казахстан
Благодарил (а): 1817 раз
Поблагодарили: 226 раз

Re: Логические задачи

Сообщение пацак » 03.08.2014, 22:38

Pinhead писал(а):Пятая задача не подлежит решению, потому что из условия задачи невозможно понять, что написано на третьем автомате.
неправильное заключение , на нём не может быть написано - кофе или чай ... оно третьего рода два в одном, двойной эспрессо ... не важно , оно неопределеное ! ты же не тормоз :P согласись на нём не может быть написано что то однозначное, значит оно .... ну ты понял ! *WALL*

Добавлено спустя 8 минут 49 секунд:
Pinhead писал(а):но уткнулся в эти проклятые три монеты, и решил делить на три части. А в действительности надо пополам делить.
ну ты генний !!! как разделить три монеты на три части это я могу сообразить, но как их поделить пополам :o ... просто сначала изначально тупо сравнивать кучуи (сначала по шесть штук, потом по три ), а при трёх монетах подумать .. ведь если не думать можно было просто взвешивать монетыы поочерёдно и понять какая фальшивая, но так же неинтересно !
слушайте , неужели так трудно понять что там не взвешивание, а сравнивание двух масс .. или правильнее весов ... а то что фальшивая монета легче настоящих это даже дети знают .. наверно :o

Добавлено спустя 4 минуты 17 секунд:
Evgenij писал(а):Это тоже самое, что и на четыре части по три.
это правильно .... там два решения ... но всё заканчивается тремя монетами и мозговым штурмом !

Добавлено спустя 6 минут 2 секунды:
Evgenij писал(а):Три взвешивания, если фальшивка по умолчанию легче. Но в условиях этого ведь нет.
ну вы даёте - земля круглая, вода мокрая, Алиса из будущего ... это как , надо прописать в законе или это понятно каждому умному человеку ? 8)
бога нет ! есть вера в него !

Аватара пользователя

Mich
Сообщений: 3948
Стаж: 15 лет 7 месяцев
Реальное имя: Михаил
Skype: Mich-Mych
Желаемая форма обращения: На "ты"
Откуда: из будущего...
Благодарил (а): 1495 раз
Поблагодарили: 879 раз
Возраст: 50
Контактная информация:

Re: Логические задачи

Сообщение Mich » 03.08.2014, 22:50

Pinhead писал(а):Делим пополам, потом ещё пополам, потом оставшиеся три монеты взвешиваем по методу, указанному выше.
Если мы точно знаем что фальшивая монета легче или тяжелее настоящих. Но в условиях этого не сказано, значит направление отклонения веса нам не известно. И при первом взвешивании двух групп мы не сможем узнать какая из них содержит фальшивку. Для этого нужен эталон, которым и служит третья группа, т.к. монета только одна и какая-то пара групп обязательно будет равновесной.

Добавлено спустя 2 минуты 1 секунду:
пацак писал(а):а то что фальшивая монета легче настоящих это даже дети знают
Не скажи. Некоторые фальшивки делают из свинца. А некоторые на основе медной пластины. Они будут тяжелее настоящих, сделанных из моносплава. При этом в руке вы этой разницы не почувствуете, а на весах легко увидите.
Лишь тот способен добрым быть, кому пришлось от злобы выть,
Лишь тот познает дружбы цену, кто испытал друзей измену,
И лишь тому любовь дана, кто ненависть познал сполна.

Новая тема Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 21 гость