Блог разработчиков

Трудный вопрос на собеседовании #5

Скакунов Александр
Опубликовано 1.07.2008 в Учеба

Итак, мы продолжаем серию переводов цикла “Трудные вопросы на собеседовании“.

Задача #5

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

UPDATE: ответ.

top of hotblogs.org.ua
1 звезда2 звезды3 звезды4 звезды5 звезд (6 голосов, средний: 1.67 из 5)
Загрузка ... Загрузка ...

Понравилась статья? Подпишись на обновления по RSS/E-mail

Подписаться, не оставляя комментарий

Все комментарии (26) к “Трудный вопрос на собеседовании #5”

  1. Вася говорит:

    разрезать пополам горизонтально :)

  2. raggzy говорит:

    Линией, проходящей через центры обоих прямоугольников (любая линия, что проходит через центр любого прямоугольника, делит его на 2 равные по площади части). Центры можно находить через пересечения диагоналей.

    [:||||:], 7 класс.

  3. Kollaps говорит:

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

  4. http://porotnikov.myopenid.com/ говорит:

    +1 за “Линией, проходящей через центры обоих”

  5. Алексей говорит:

    +1 за линией проходящей через центры :)

  6. Steward говорит:

    +1 за горизонтальный разрез - это гениально!!!

  7. alexdolgin говорит:

    Есть такая книжка “Как сдвинуть гору Фудзи”
    Пока что, все “трудные вопросы” взяты оттуда

  8. rukeba говорит:

    Присоединяюсь. Второй комментарий есть правильный ответ.

  9. Сашко говорит:

    Интересно, а если бы торт был круглый, и вырезали тоже круглый кусок не посередине, тогда бы тоже диагонали проводились? :)

  10. Restuta говорит:

    Нет, но прямая через 2 центра.

  11. Vadim Voituk говорит:

    Мне когда-то задавали эту задачку на собеседовании в Sonopia :)

  12. Алексей говорит:

    Дело в цетрах масс.
    Берем кусок торта в форме гаечного ключа.
    Находим центр масс.

    Вырезаем из гаечного ключа ботинок. Условно, находим центр масс ботинка.

    Рарезаем.
    Получится что с обоих сторон прямой находятся равные по весу части. Ну и если условно считать что торт не турецкий, то есть с начинкой там более менее равномерно, то и получаем “равные” куски.

  13. Евгений говорит:

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

  14. raggzy говорит:

    #12 - правда.
    #13 - вообще то задачу решают (пока что) на плоскости, тоесть разрез посути есть линия… Но если абстрагироваться и на 3D, то любая плоскость, которая проходит через центр мас любого тела и ее нормаль перпендикулярна гравитационному вектору (собсно для Земли направлен “вертикально вниз”, к гравитационному центру, он и определяет измерение веса, g~9.8Н/кг), будет делить тело на равные по весу куски.
    Таким образом, чтобы решить задачу в общем случае, мы можем для любых двух тел определить такую плоскость, которая будет проходить через оба центра масс перпендикулярно заданому вектору g.
    g=(g1,g2,g3) - заданный. (например (0,-1,0) для с.к. с вертикалью Y)
    Центры масс : A1=(x1,y1,z1) A2=(x2,y2,z2)
    Плоскость P{(a,b,c),d} Уравнение плоскости ax+by+cz+d=0, вектор нормали (a,b,c) свободный член d.
    Итак, система :
    ax+by+cz+d=0 - уравнение плоскости
    ax1+by1+cz1+d=0 - 1й центр масс на плоскости
    ax2+by2+cz2+d=0 - 2й центр масс на плоскости
    ag1+bg2+cg3=0 - условие перпендикулярности нормали к g.
    4 неизвестных (a,b,c,d), 4 уравнения. В “невиродженому” случае решение однозначно.

  15. raggzy говорит:

    Чета я наплужил в системе :)
    Оно в принципе и так понятно, просто лучше взять d=1 (при d!=0) И тогда первого уравнения не нужно, т.к. оно общее, для всех (x,y,z), а останется 3 уравнения и 3 неизвесных….
    Или же решать неопределенную систему (3×4), а потом взять любое из решений, т.к. все коэффициенты скейлятся… (x+y+z+1=0 равносильно 2x+2y+2z+2=0)

  16. wack говорит:

    +1 за 2-й пост

    когда я в 8-й клас в лицей лидер поступал там была такаяже задача,
    а центр мас как по мне высасывание проблемы из пальца, вес торта тут ни причем

  17. Щетинин Сергей говорит:

    разрезать посерединке в горизонтальной плоскости

  18. P говорит:

    +1 за пост №2

  19. Саша Антонов говорит:

    Я шоке…..

  20. Dodius говорит:

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

  21. Skinhead говорит:

    Я когда проходил собеседования в Праге - у меня весьма стеснительно спрашивали о java.util.Vector - они, почему-то, понимали что свинство задавать такие вопросы - хамство по отношению к кандидату.

  22. igkiev говорит:

    Условия не полные. Если прямоугольный сегмент вырезан посередине - режем как хотим - посередине горизонтально, вертикально, по диагонали и тп. А вообще смотря на какую должность вакансия. Если на менеджера - правильный ответ “попросил бы специалиста этим заняться и отчитаться” :))

  23. Olexiy говорит:

    2 Skinhead
    Які? Про вектор чи про прямокутники?
    І чому хамство?

  24. Ваня Нечаев говорит:

    Хорошую тему подняли, главное очень полезную..

  25. Скакунов Александр говорит:

    Правильный ответ:

    Подсказка: каким свойством обладает любая линия, делящая прямоугольник пополам (что-то простое)? Если хотите полное решение, читайте дальше.

    Каждая линия, которая делит прямоугольник пополам, проходит через центр прямоугольника. Существует бесконечное число таких линий для каждого прямоугольника. Тем не менее, существует всего одна линия, которая проходит через центры обоих прямоугольников - торта и сегмента в нем - если только у них не один и тот же центр. Эта линия делит оба прямоугольника точно пополам, и по этой линии нужно делать разрез.

    Футболку получает Алексей за предложение оригинального решения задачи.

  26. nahab говорит:

    Всё-таки самый “правильный” вариант - это 20 - и на плоскости подходит и в 3D , даже если торт турецкий или в нем вырезали ботинок - всем достанется поровну.(при определённой сноровке того кто будет резать, правда, если торт не развалиться раньше чем его разрежут ;) )

    Только к этой то задаче программирование вообще каким боком относиться, или это здесь математический кружок? Стойте, а но кого здесь вообще собеседуют?!

Оставить комментарий

Указать свой сайт могут только зарегистрированные пользователи. Регистрация или вход.

Архив

Вакансии rss icon

Все вакансии

Комментарии