школа | учеба | люди | партнеры | досуг | фотобанк | форум |
новое сообщение | поиск | статистика | правила | регистрация
Тестирование соискателей в компанию Google:
у одного короля была сотня советников. Все они были гномы. Советники давали плохие советы, и король принял решение их казнить.
В день казни гномики были выстроены в очередь. При этом у каждого гнома был на голове колпак черного или белого цвета.
Итак, ситуация такова: Если гном угадывает цвет колпака, который на нём надет, то он выживает, а ежели нет, то ему соответственно голову отрубают.
И еще: Каждый гном видит цвета колпаков впередистоящих гномов.
А также: гном, стоящий на плахе, видит всех остальных. Первым казнят последнего гнома в очереди.
Ах, да, вопрос: Какое максимальное количество гномов выживет?
Ну, и еще, Алексей Вадимович Белецкий полагает, что всё это излишне.
спасибо
Максимальное - сто. Ну, например, если все угадают.
Комментировать
Ты забыл упомянуть ключевой момент: вся очередь видит, что происходит на плахе (казнят очередного гнома или нет). И еще: гномы не могут обмениваться никакими сигналами.
Я решил задачу вчера по пути домой. Максимум, действительно, 99. Имеется в виду максимум в худшем случае, так что Ромино соображение ("если всем повезёт") не по делу.
Вопрос задачи такой: какое наибольшее число гномов могут ГАРАНТИРОВАННО спастись.
Комментировать
Вопрос задачи:
"Какое максимальное количество гномов выживет?"
При таком вопросе, правильный ответ - 100. Например, если каждый угадает.
Конечно, задача с самого начала была сформулирована некорректно, но всё-таки понять суть проблемы можно. Мы же не в суде, а?
КомментироватьЛучше бы гномы потратили свой интеллект на советы королю.
Комментировать
пока несли колпаки, у гномиков была возможность обсудить ситуацию.
Эта задача, кстати, знаменита в гимназии; по крайней мере, несколько классов знают ее в полном составе.
Я её этим летом решил. Там не выжить может только первый.
Комментировать
В отдном посте, а то непонятно, но тоже интересно...
Плиз
Злой волшебник решил изощренно наказать 100 гномов. Он сказал им: "Я расставлю вас в затылок друг другу, сверху вниз на склоне холма, и надену на вас белые и черные колпаки (сколько каких колпаков - не скажу). Потом я буду подходить к каждому из вас по очереди, начиная с последнего, и спрашивать: "Какой на тебе колпак?" Отвечать можно только "Белый" или "Черный"; будете кашлять, шаркать или еще как-нибудь подавать знаки - сразу же съем всех. Если гном угадает, я его помилую; если назовет неправильный цвет - проглочу". Сказав это, волшебник ушел за колпаками, а гномы в это время пошептались. Задача: разработать за них такую стратегию, чтобы при экзекуции гарантированно уцелело как можно большее число гномов (как здесь уже подсказали - 99).
Комментировать
Есть большая группа людей - числом, положим, Эн Большое. Каждый может знать или не знать каждого другого, причём отношение это не симметричное (если я знаю Дарью Дическул, она может меня и не знать ). Эти отношения записаны в матрицу NxN, ноликами и единичками.
Будем считать знаменитостью человека, которого знают все, а сам он не знает никого. Вопрос: можно ли за O(N) (то есть за N*какую-то_константу) операций выяснить, есть ли у нас в обществе знаменитость?
хотя я и не очень уверен, что правильно - можно поочередно убирать из матрицы j-ую строку и j-ый столбец (как называется эта операция??? и считать сумму по оставшимся строкам/столбцам. В зависимости от того, поменялась ли сумма на N (все знают человека j) или не поменялась (человек j не знает никого) - и определяется, есть ли знаменитость.
Примерно так.
Но такое впечатление, что количество операций будет примерно N^3, нет? Сумму считать - это тебе не фунт изюму...
Понятно, что за 2N^2 сделать не проблема: пройтись по всей матрицен вдоль и поперек, да поискать ряд, где все единички и строку, где все нули. Но это слишком долго.
я и предлагаю пройтись по всем, например, строчкам и поискать, где все нули. Потом для нулевых строк проверить соответствующие столбцы. Только сумму нужно считать для матрицы без j-й строки и j-го столбца, так как сам себя человек всегда знает... или нет?
Только ты определись с понятием "операция", так как для меня "поискать ряд, где все единички и строку, где все нули" - это непонятно. А сумма элементов любой строки/столбца - это имхо операция, нет? Кроме того, даже сама сумма не нужна, нужно сравнить больше она, равна или меньше нуля или N.
Найти сумму N чисел - это N операций. Ладно, N-1. Проверить N чисел, являются ли они нулём - тоже N. Не очевидно?
Комментироватьнеочевидно. Ладно, не буду мешать.
Комментировать
Спасибо, Вам, Сережа, за интересную задачу! Она мне показалась свежей (хотя похожа на вступительные испытания для программистов).
Сегодня я ее решил. Правильный ответ: можно!
Если Вам интересно, могу опубликовать алгоритм.
Я тоже решил, мне не нвдо.
Вроде кого-то на собеседовании в гугль спрашивали.
Задача отличная. Я её наконец решил, сидя вчера в поезде Франкфурт-Фрайбург.
КомментироватьДва преподавателя, два выпускника. Всего трое. Ещё бы хоть одного действующего гимназиста...
Комментировать