[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Еще задачки 2
Страницы: 1, 2, 3, 4, 5, 6
Alchemist
Чегой-то тихо стало на форуме, скучно... Предлагаю вашему вниманию еще несколько задачек задававшихся в свое время на собеседованиях в Интеле, IBM, и т.д. Может будут полезны будущим соискателям, а те кто сами проводят собеседования могут взять их на вооружение.

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

Задача 2:

У вас имеется 100-этажный дом и два яйца (куриных). На каждом этаже дома есть окно, из которого можно эти яйца бросить на прохожих. Известно что яйцо разбивается при падении, начиная с определенной высоты бросания. Т.е. если оно сброшено с высоты Х или больше, то яйцо разбивается, если с высоты меньше Х - остается целым.

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

Пример:
Пусть будет такой алгоритм - кидаем яйцо с первого этажа: если оно разбилось - ответ найден; если осталось целым - подбираем и кидаем со второго. И т.д. до тех пор пока не разобьется.
При таком алгоритме если яйцо разбивается начиная с первого этажа, то ответ будет найден за 1 попытку (лучший случай), однако если оно разбивается начиная с 100-го, то нам потребуется 100 попыток, чтобы придти к ответу. Значит для этого алгоритма МАХ = 100.

Удачи !


Другие задачи:
Задача 1
Задача 3
twin
Метод половинчатого деления пока только в голову пришел)))

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Alchemist
twin, it may come as a surprise, но у тебя только два яйца smile.gif

если ты бросишь первое с 50-го этажа и оно разобьется - у тебя останется не так много вариантов.
Oyeme
На ум приходит только теория вероятности. wink.gif
twin
Alchemist
Цитата
если ты бросишь первое с 50-го этажа и оно разобьется - у тебя останется не так много вариантов.
Почему? Ровно половина. Если разобъется, попрем с первого. Если нет - с 50-го.

Как еще уменьшить, пока не сображу. smile.gif Чет мысли не шевеляцо в воскресенье вечером. sad.gif

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Alchemist
Цитата (twin @ 15.02.2015 - 14:30)
Почему? Ровно половина. Если разобъется, попрем с первого. Если нет - с 50-го.

ну я собсно это и имел в виду smile.gif
МАХ = 51, явно не лучший вариант

Oyeme, никакого тервера... на тервер будет третья задача smile.gif
twin
Если не разобъется кстати, его же с 75-го надо запулить))). Но это кагбэ в формулу не укладываецо. Тут придется действительно теорию веротности юзать)

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
stump
Первым пришел в голову метод простого перебора! Причем сначала опробовать одно яйцо бросая его и вероятнее всего получая случайным образом результат целое или нет. Потом по тем этажам на которых не разбилось первое яйцо пробежаться со вторым. Если второе яйцо будет целым до того этажа на котором разбилось первое то за результат принять этаж на котором разбилось первое яйцо, если второе яйцо разбилось раньше то за результат принять этаж на котором разбилось второе яйцо.

Для того чтобы получить статистически достоверный результат наверное надо 2000 яиц. Тогда с минимальной погрешностью можно будет определить этот самый этаж. А при имеющихся данных пока только метод простого перебора. Подумаю на досуге про еще какой-то метод.

_____________
Трус не играет в хокей
twin
Через один можно попробовать... Только как посчитать не соображу.

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
waldicom
Почему бы не швырять яйца с кратных 10 этажей, т.е. с 10, 20, 30 и так далее. Тогда max = 20. Или не?

_____________
Свои мозги еще никто не отменял.
Телепатов нету.
Oyeme
Цитата (waldicom @ 15.02.2015 - 12:38)
Почему бы не швырять яйца с кратных 10 этажей, т.е. с 10, 20, 30 и так далее. Тогда max = 20. Или не?

Ну или хотя бы на 3 делить
100/3 = первое яйцо и уже потом на 2 делить

Спасибо за задачки.Переришаю все.
Лет 5 назад проходил собиседовние на facebook , первый этап прошел остальные нет.
Опыта тогда не хватило.
waldicom
Цитата (Oyeme @ 15.02.2015 - 13:47)
Цитата (waldicom @ 15.02.2015 - 12:38)
Почему бы не швырять яйца с кратных 10 этажей, т.е. с 10, 20, 30 и так далее. Тогда max = 20. Или не?

Ну или хотя бы на 3 делить
100/3 = первое яйцо и уже потом на 2 делить

По идее тогда получается Max=30, если яйцо разбивается с 29-го этажа... Вроде бы...

_____________
Свои мозги еще никто не отменял.
Телепатов нету.
twin
waldicom
Цитата
Почему бы не швырять яйца с кратных 10 этажей, т.е. с 10, 20, 30 и так далее. Тогда max = 20. Или не?

18 получицо. А так то да, это и есть вариант наверно.

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
waldicom
Цитата (twin @ 15.02.2015 - 13:50)
waldicom
Цитата
Почему бы не швырять яйца с кратных 10 этажей, т.е. с 10, 20, 30 и так далее. Тогда max = 20. Или не?

18 получицо. А так то да, это и есть вариант наверно.


ок, ни тебе не мне: 19 smile.gif
Т.е. если яйцо разбивается с 99-го этажа, то получаем:
швырять с 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 91, 92, 93, 94, 95, 96, 97, 98, 99 --> 19 попыток

_____________
Свои мозги еще никто не отменял.
Телепатов нету.
twin
С 100-го нет смысла кидать.

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.