Как стать автором
Обновить

Комментарии 44

>> Расположите 9 монет таким образом, чтобы получилось 10 рядов по 3 монеты в каждом прямолинейном ряду. На рисунке таких рядов 8. Перекладывайте, как хотите.<<

На рисунке УЖЕ 10 рядов (включая 2 диагонали - это что не прямые линии ?). Условие неверное - 10 вертикальных и горизонтальных рядов тогда уж...
На рисунке таки 8 линий (три горизонтали, шесть вертикалей и две диагонали). Нужно подвинуть две монеты в среднем ряду так чтобы полчилось некое подобие буквы Ж:
X X X
 XXX
X X X
Пропадут две вертикали, добавятся 4 диагонали (исходные никуда не делись, но добавились выходящие из угла и попадающие в середину стороны). Итого 10 линий...
Классно. Сами решили?
Угу. Секунд 10 потребовалось на то чтобы придумать решение, неправильно посчитать число прямых, потом ещё 5 минут на попытки модифицировать его и понять что решение правильное, а проверка - нет.
для второй задачи буква Е
Буква Е - не непрерывная ломаная линия. Читайте внимательнее условие ;)
я рассуждал так:
массив:
123
456
789

321456654789

PS
хотя щас уже понимаю что неправ :)
для первой задачи расположим вот так:
.........
если не ошибаюсь количество рядов по 3 тут будет равно
количество сочетаний из 9 по 3 = 9!/3!6! = 84 :)
Нет, всего 7.
Для второй задачи - нигде же не сказано, какой длины должны быть отрезки =)
Вот вариант
Верно!
насколько я знаю отрезок это линия между 2 точками-или я не прав?
Что-то у меня рисуног не прошел :-/ Гррррр!
Если в первой задаче в прямую линию все монетки сложить, то как раз десять объединений рядом стоящих монет получается
не прав был. по непонятной причине считал с 12ю монетами.
есть решение по первой задаче: всего то нужно сдвинуть две монетки на 0,5
Какое отношение к IT имеет эта задача?
Очень простое: чтобы её решить нужно держать в уме десяток объектов. Это умеет делать далеко не каждый человек, но для IT-шника - это жизненно важное умение ибо не слишком сложная система может включать в себя взаимодействие трёх-четырёх серверов (SQL сервер, middleware, Clearsilver и какая-нибудь кластеризация) и два-три уровня на клиенте (HTML/CSS и JavaScript плюс, возможно, самописные быблиотеки для отсылки сообщений). Бывают люди, которые в упор не принимают подобные задачи, но при этом являются хорошими IT'шниками, но это скорее психология, чем реальность: я когда обкатываю таких вещи на коллегах (нельзя же давать задачу на интервью, которую реальные сотрудники не решают?), то обычно решение занимает минут 10 из которых 9 уходит на объяснение того, что такие задачи никакого отношения к IT не имеют и давать их на интервью не стоит. Само решение занимает почти столько же времени сколько и у людей, rоторые такие головоломки любят...
Вторая задача создана не для того, чтобы проверить умение держать в уме "пицот тыщ мильёнов" (с) объектов, а для того, чтобы проверить, может ли человек выходить за грани представляемого и обозреваемого, т.к. изначально человеку предоставляется квадрат (он ограничен этим квадратом теми точками/монетками/кружочками, которые ему располагают в данной форме), в то время как для ее решения, он должен видеть прямоугольник, ибо в противном случае он не увидит того, что увидел посмотреть профиль kronos вот тут и никогда не найдет решения.

P.S. Вторая задача, кстати, достаточно известна среди психологов.
К IT может и никакого. Зато к теме блога самое прямое :)
Извиняюсь, оказывается я не могу вставлять картинки. Тогда дам ссылками,

К первой: http://img143.imageshack.us/img143/1631/65264246wa9.jpg
Ко второй: http://img143.imageshack.us/img143/2262/52830913kx8.jpg

Спасибо за задачи, но неплохо было бы к первой приложить flash'ку с drag'n'drop монетками, а то самому делать пришлось (серьёзно :-)
Вы чего ? Первую задачу нужно в уме решать - иначе в ней никакого смысла нет, а во второй флешка либо не поможет, либо даст очень серъезную подсказку...
Подброшу задачу про монетки из детства:
Имеется 12 монеток, 1 из них фальшивая. Фальшивка отличается по весу. С помощью 3 взвешиваний на рычажных весах нужно однозначно установить фальшивую монету.
Помойму вы забыли про то, в какую сторону фальшивая отличается по весу? Тяжелее\легче?

На одну чашу весов кладём 6 и на другую 6. Одна из них перевесит, берем ту половину, которая тяжелее\легче. Потом кладём по три на каждую чашу. Аналогично отбираем ту, которая тяжелее\легче. Затем берем любые две, взвешиваем. Если равны, значит фальшивая - оставшаяся. Если не равны, значит фальшивая та, которая тяжелее\легче.
Нет, я не забыл: известно, что отличается по весу, но неизвестно в какую сторону.
Не забыл он ничего. В варианте, когда неизвестно - тяжелее фальшифка или легче имеем 24 исхода (2 x 12: легче/тяжелее x монета номер 1, 2, ..., 12), что слегка меньше 27 (три возможных результата взвешиваний три раза). Реально задача решается и про 13 монетах (2 x 13 = 26 < 27 = 3 x 3 x 3), но это уже несколько садизм, на интервью давать не стоит: запас в 0.17 бит - это ещё куда ни шло, но 0.05 - это уж совсем мало...

P.S. Ёжику ясно, что сравнивать 6 монет и 6 монет бессмысленно: вы транжирите одно взвешивание ибо в нём возможны только два исхода и вы вместо 27 вариантов получается 2 3 3 =18<24, так что в правильном решении, разумеется нужно сравнивать X X монет, где X<6... Сколько именно и что делать дальше - решайте сами...
Подброшу задачку ))
Вы находитесь в комнате с тремя рубильниками. Рядом есть комната, в которой находятся три обычных лампочки - допустим, по 100 ватт =) С помощью рубильников вы можете включать и выключать лампы; каждый рубильник соответствует одной лапмпочке, но неизвестно, какой именно. Из первой комнаты вы не можете видеть вторую и, соответственно, что там происходит. После манипуляций с рубильниками вы можете пройти во вторую комнату и оценить результат своих действий, но обратно вернуться вы уже не можете, one way ticket =). Необходимо с учетом вышеприведенных условий однозначно определить, какой рубильник за какую лампу отвечает.
Ммм, дополнение: изначально все три лампы выключены.
Значит так: включаешь первый рубильник минут так на 10, затем выключаешь его и включаешь второй и идешь во вторую комнату. Там все просто, горячая лампочка соответствует первому рубильнику, лампочка которая горит - второму, оставшаяся(которая холодная и не горит) - третьему
Только что решено? Тогда респект =))
Сомневаюсь. Но это читерская задачка: доказать что она неразрешима - раз плюнуть (нужно выбрать один вариант из 6, а увидеть мы можем только один вариант из трёх независимо от положения рубильника), но вот понять - чего от тебя хотят очень сложно. Скорее задачка для PM'а или дизайнера, чем программиста...
Для линейного мышления эта задачка неразрешима - спустя минуту любой более-менее мыслящий пользователь поймет, что только с помощью рубильников проконтролировать лампочки за раз невозможно. Значит остается "прыгнуть выше головы" - то есть перейти в третье измерение и подключать другие условия, не указанные явно. А таковых без вреда для логики и без надуманности остается не так много... )
Ну почему не так много. Можно придумать много механизмов для переключения рубильника через 15 минут. Ваше же решение заточено под определённый набор знаний - например для меня "обычная лампочка" это уже давно не лампочка накаливания, а люминисцентные лампы не греются, светодиодные тоже греться не обещают...

В общем условностей - много и кругозор требуется широкий...
Хм, я предвидела такой аргумент и хотела уточнить по поводу ламп накаливания, но это была бы слишком очевидная подсказка... так что пришлось ограничиться сочетанием "обычная лампочка в 100 ватт", в надежде, что у большинства это сассоциируется именно с лампой накаливания )
Но согласна, что задача во многом слишком творческая для области деятельности программиста, которому поставили ТЗ, вот он и пишет под него )
Если хотите нелинейную логику, то есть ведь известная задачка про людоеда и гномиков. Который (как водится) поймал сотню гномов, но есть не стал (он же людоед, а не гномоед), а заставил рассказывать сказки. Причём сказал что когда услышит от каждого гномика по сказке, то отпустит всех - если они его попросят. Но если те посмеют просить об этом до того, как они все высказались - то преступит через себя и всех съест. Однако тут же успокоил, сказав, что он не злой и сказки любит разные, так что никто не будет забыт и каждый из гномиков будет рассказывать сказки много-много (забыть его лицо у них до конца службы не получится ни у кого, хе-хе) - но конечно могут у него быть и любимчики, которых он будет вызывать чаще остальных. Сидят они, понятно, в разных камерах, а на стене в комнате сказок - шесть рубильников, которые изначально выключены, но гномики могут их включать-выключать, а людоед на них не смотрит...

Ну и сколько им рассказывать эти сказки чтобы не оказаться съеденными ?
Собственно это её вариант и есть. И если вы знаете ответ на ту задачу, то эту можно решить сходу проигнорировать 5 рубильников. Но если нет - то возникают проблемы: есть много способов использовать 6 рубильников чтобы ускорить процесс, но вот симметричного решения (без выделенного счётчика) не получается...
Если гномики очень рискованые (либо терпеливые), они могут попробовать обойтись без счетчика.
Если рубильников было бы семь было бы совсем просто число 99 можно записать как 1100011 (1 - рубильник включен). Каждый входящий гномик, который не рассказывал сказку двоично добавлял бы единичку и любой мог бы узнать сколько человек прошло.
Но, так как бит всего шесть, придется умалчивать последний бит.
То есть, если любой из гномиков видел на счетчике число 35 (100011) больше двух раз, значит все были в комнате как минимум один раз.
Задачи Пола Бурка
решил первую задачку, но не так как в первом топике считайте сами)

х
х х
х х х
х х
х
Почему-то пробелы убрались...
Короче ромбом
......Х
...Х...Х
Х...Х...Х
...Х...Х
......Х
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории