Украинское сообщество программистов

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

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

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

Задача #5

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

UPDATE: ответ.

Теги: ,

1 звезда2 звезды3 звезды4 звезды5 звезд (8 голосов, средний: 2.25 из 5)
Загрузка ... Загрузка ...
Распределение голосов

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

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

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

  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 , даже если торт турецкий или в нем вырезали ботинок – всем достанется поровну.(при определённой сноровке того кто будет резать, правда, если торт не развалиться раньше чем его разрежут ;) )

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

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

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

Архив

Добавить статью

Станьте автором нашего сайта!

Какие материалы подходят для публикации? — Такие.

Присылайте статьи на editors@developers.org.ua.

Подробнее.

Популярные теги

Все теги

Комментарии

Последние комментарии

интернет магазин бытовая техника магазин Laptoper